CSS 및 JavaScript를 사용한 프레임에 의한 프레임
이 튜토리얼은 HTML, CSS 및 JavaScript를 사용하여 매끄럽고 성능 및 관리 가능한 프레임 별 애니메이션을 제작하기위한 다양한 방법을 탐색합니다. 우리는 깜박 거리는 눈 애니메이션을 구축하여 브라우저와 장치에서 최적의 결과를 달성하기 위해 접근 방식을 점차적으로 정제합니다. 주요 개념 :
CSS와 JavaScript를 사용하는 프레임 별 애니메이션 기술은 각각 트레이드 오프가있는 다양한 접근 방식을 제공합니다.
SVG의 확장 성과 반응성은 특히 복잡하거나 대화식 애니메이션의 경우 GIF보다 우수합니다.
프레임 별 애니메이션 란 무엇입니까?
Adobe에 의해 정의 된 프레임 별 애니메이션은 모든 프레임의 무대 내용을 변경하는 것과 관련이 있습니다. 각 프레임이 독특한 복잡한 애니메이션에 이상적입니다. 본질적으로 일련의 이미지는 움직임의 환상을 만듭니다. 이 튜토리얼은 확장 성을 위해 SVG 이미지를 사용합니다. PNG, JPEG 및 GIF와 같은 대안이 나중에 논의됩니다. jQuery를 사용하고 AutoPrefixer가 구성되었다고 가정합니다 방법 :
-
이미지 변경 출처 :
- 이 간단한 방법에는 요소의 속성을 동적으로 변경하는 것이 포함됩니다.
는 더 부드러운 애니메이션에 사용되지만 이미지 사전 로딩은 초기 jank를 방지하는 데 중요합니다. Preloading은 이미지와 함께 숨겨진 div를 배경 이미지로 추가하여 달성됩니다. - 프로 : 선언적, 이미지는 제자리에 남아 있습니다 단점 :
- 여러 HTTP 요청은 초기 페이지로드를 늦출 수 있습니다. 리페인트로 인한 모바일의 Janky 애니메이션 가능성.
-
translate3d
이미지 불투명도 변경 : 이 접근법은 소스 대신 이미지 불투명도를 변경하여 페인트를 피합니다. 모든 이미지는 사전로드되어 성능이 향상되지만 여전히 여러 이미지로드가 필요합니다. - 프로 :
는 여전히 여러 이미지로드가 필요하므로 초기 페이지로드에 영향을 줄 수 있습니다.
스프라이트 위치 변경 : 이것은 모든 애니메이션 프레임을 포함하는 단일 이미지 인 CSS 스프라이트 시트를 사용합니다. CSS 애니메이션은 애니메이션을 생성하기 위해를 변경합니다
-
pros : 단일 HTTP 요청, JavaScript가 필요하지 않습니다
단점 :
- 리페인트는 모바일에서 Jank를 유발할 수 있으며, 서브 픽셀 렌더링으로 인해 이미지가 흔들릴 수 있습니다. 변환과 함께 움직이는 스프라이트 :
- 이것은 를 사용하여 메소드 3을 최적화합니다. 이것은 리피트와 리플 로우를 최소화합니다. 애니메이션에서 백분율 값을 지원하지 않는 이전 IE 버전에는 폴백이 필요합니다.
는 하드웨어 가속에 사용됩니다
pros : 단일 HTTP 요청, 최소화 된 리페이트로 인해 모바일의 부드러운 애니메이션.
단점 :
인라인 svg : 외부 파일을 사용하는 대신 SVG를 인화하는 것은 초기 페이지로드 시간, 특히 재 방문 확률이 낮은 페이지에서는 초기 페이지로드 시간을 개선 할 수 있습니다.
성능 비교 : 성능 테스트 (예 : JSPERF 사용)는 스프라이트 변환 방법 (메소드 4)이 일반적으로 최상의 렌더링 성능을 제공 함을 보여줍니다.
transform: translateX
대안 :
background-position
gif : translateX
확장 성이 중요하지 않다면 적합하지만 애니메이션 흐름에 대한 제어가 부족하고 클 수 있습니다.
transform: translate3d(0, 0, 0)
캔버스 :
- 결론 :
최상의 방법은 프로젝트 요구 사항에 따라 다릅니다. 확장 성을 위해 SVG의 우선 순위를 정하고 성능에 변환 특성을 사용하며 최적의 초기 부하 시간에 대한 스프라이트를 고려하십시오. 성능, 유지 관리 및 개발자 친숙성의 균형을 맞추는 접근 방식을 선택하십시오. (이미지 URL은 쉽게 사용할 수있는 형식으로 제공되지 않았으므로 출력에 포함되지 않았습니다. 자리 표시자를 실제 이미지 URL로 바꾸십시오.)
위 내용은 CSS 및 JavaScript를 사용한 프레임에 의한 프레임의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제

AutoPrefixer는 대상 브라우저 범위를 기반으로 공급 업체 접두사를 CSS 속성에 자동으로 추가하는 도구입니다. 1. 오류가있는 접두사를 수동으로 유지하는 문제를 해결합니다. 2. PostCSS 플러그인 양식, CSS를 구문 분석하고 접두사를 조정 해야하는 속성을 분석하고 구성에 따라 코드를 생성합니다. 3. 사용 단계에는 플러그인 설치, 브라우저리스트 설정 및 빌드 프로세스에서이를 활성화하는 것이 포함됩니다. 4. 참고에는 수동으로 접두사를 추가하지 않고 구성 업데이트, 접두사가 모든 속성이 아닌 접두사를 유지하며 전처리기와 함께 사용하는 것이 좋습니다.

ToTeCreatesTickyHeaders andfooterswithcss, 사용 위치 : stickyforheaderswithTopvalueAndz-index

theconic-gradient () functionincsscreatescurcular gradientsthattroTecolorstopsaroundacentral point

CSS로드 로테이터를 만드는 세 가지 방법이 있습니다. 1. HTML 및 CSS를 통해 간단한 애니메이션을 달성하기 위해 테두리의 기본 회전기를 사용하십시오. 2. 여러 지점의 사용자 정의 회전기를 사용하여 다른 지연 시간을 통해 점프 효과를 달성하십시오. 3. 버튼에 로테이터를 추가하고 JavaScript를 통해 클래스를 전환하여로드 상태를 표시합니다. 각 접근 방식은 사용자 경험을 향상시키기 위해 색상, 크기, 접근성 및 성능 최적화와 같은 설계 세부 사항의 중요성을 강조합니다.

Mobile-FirstcsSdesignRequiresTtingTheviewPortMetatag, RelativeUnits, StylingFromsMallScreensup, 최적화 획기적인 andtouchtargets.first, addtocontrolscaling.second, 사용%, em, orreminsteadofpixelsforflexelayouts.third

뷰포트의 전체 그리드 레이아웃을 중심으로 만들려면 다음 방법으로 달성 할 수 있습니다. 1. 마진 : 0auto 사용 수평 센터링을 달성하고 고정 레이아웃에 적합한 고정 너비를 설정하도록 컨테이너를 설정해야합니다. 2. Flexbox를 사용하여 외부 컨테이너에서 정당화 및 정렬 항목 속성을 설정하고 최소값 : 100VH를 결합하여 수직 및 수평 센터링을 달성하여 전체 화면 디스플레이 시나리오에 적합합니다. 3. CSSGRID의 장소 항목 속성을 사용하여 부모 컨테이너를 빠르게 중심으로 간단하고 최신 브라우저의 지원을받으며 동시에 상위 컨테이너의 높이가 충분한지 확인해야합니다. 각 방법에는 적용 가능한 시나리오 및 제한 사항이 있으므로 실제 요구에 따라 적절한 솔루션을 선택하십시오.

고유 반응 형 그리드 레이아웃을 생성하려면 핵심 방법은 CSSGrid의 반복 (Auto-Fit, Minmax ()) 모드를 사용하는 것입니다. 1. 그리드-템플릿-컬럼 설정 : 반복 (자동 결제, minmax (200px, 1fr)) 브라우저가 칼럼 수를 자동으로 조정하고 각 열의 최소 및 최대 너비를 제한하도록합니다. 2. 간격을 사용하여 그리드 간격을 제어하십시오. 3. 컨테이너는 폭과 같은 상대 단위로 설정되어야하며 100%, 상자 크기 : 너비 계산 오류를 피하고 마진으로 중앙을 중심으로하여 Border-Box를 사용해야합니다. 4. 선택적으로 행과 같은 시각적 일관성을 향상시키기 위해 행 높이와 컨텐츠 정렬을 설정합니다.

feacturedetectionincssusing@supportschecksifabrowsersupportseaspecificfeaturebeforplyplyplatedstyles.1.itusesconditionalcssblocksbasedonproperty-valuepair, sublics@supports (display : grid)
