CSS 애니메이션 성능 최적화 안내서 : 브라우저 개발자 도구를 사용하여 애니메이션 유창함을 향상시킵니다
이 기사는 Siteground와 공동으로 만들어졌습니다. SitePoint를 지원하는 파트너에게 감사합니다.
우리 모두가 알고 있듯이 CSS 애니메이션 성능은 일반적으로 매우 높습니다. 그러나 많은 수의 요소 또는 복잡한 애니메이션이 포함 된 장면의 경우 코드가 성능에 최적화되지 않으면 애니메이션이 말더듬되고 사용자 경험에 영향을 미칩니다.
키 포인트
부드러운 애니메이션 효과를 얻으려면 대상 프레임 속도가 60fps (초당 프레임)에 도달해야합니다. 더 부드러운 애니메이션을 보장하기 위해 CS의 불투명도, 변환 및 필터 만 애니메이션됩니다. 다른 속성을 애니메이션으로 만들면 브라우저에 압력을 가할 수있어 매우 짧은 시간 안에 값 비싼 작업을 수행하여 결과가 나빠질 수 있습니다.
css 속성 또는 및
기술을 사용하여 브라우저가 처리를 위해 GPU (그래픽 처리 장치)에 대한 일부 속성 변경을 넘겨 주도록 강제합니다. 이를 통해 하드웨어 가속을 활용하고 기본 브라우저 스레드의 압력을 완화합니다. 그러나 과용은 애니메이션 말더듬과 같이 피하려고하는 문제를 일으킬 수 있습니다.-
애니메이션 품질을 평가할 때 사용자 경험보다 더 중요한 것은 없다고 생각합니다. 그러나 최신 브라우저 개발자 도구가 항상 100% 신뢰할 수있는 것은 아니지만 더 똑똑해지고 있으며이를 사용하여 코드를 검토, 편집 및 디버깅 할 수 있습니다. -
Firefox 성능 도구 탐색 이 기사에서는 Firefox Performance 도구를 사용하고 있습니다. 또 다른 주요 경쟁자는 크롬 성능 도구입니다. 두 브라우저 모두 강력한 성능 기능을 제공하므로 좋아하는 도구를 선택할 수 있습니다. -
또는 키보드 바로 가기 사용 : Windows 및 Linux에서 Ctrl Shift i 를 누르고 MacOS에서 i - 를 opt i 를 누릅니다.
다음, 성능 탭을 클릭하십시오. 여기에는 웹 사이트의 성능 데이터 기록을 시작할 수있는 버튼이 있습니다. 이 버튼을 누르고 몇 초 동안 기다리거나 페이지에서 약간의 작업을 수행하십시오. 완료되면 "Performance Recording 중지"버튼을 클릭하십시오 잠시 후, Firefox는 코드에 어떤 문제가 있는지 이해하는 데 도움이되는 잘 조직 된 데이터를 많이 제공합니다. - 키워드를 사용하는 간단한 CSS 애니메이션입니다. 테스트 페이지는 다음과 같습니다.
- Nick Salloum의 CSS Will-Change 부동산 소개
mdn 에 의한 CSS 속성 애니메이션
CSS 애니메이션 성능 (FAQS)에 대한 FAQ
CSS 애니메이션의 성능에 영향을 미치는 주요 요인은 무엇입니까? - 및 와 같은 애니메이션 속성은 출판 또는 그리기 작업을 트리거하지 않기 때문에 더 나은 성능을 발휘하는 경향이 있습니다. 그러나 , 또는 와 같은 애니메이션 속성은 레이아웃 오프셋과 다시 그리기를 일으켜 애니메이션을 느리게 할 수 있습니다. 또한 장치의 하드웨어 및 브라우저의 렌더링 엔진도 CSS 애니메이션의 성능에도 영향을 미칩니다.
-
CSS 애니메이션의 성능을 측정하는 방법은 무엇입니까?
브라우저 개발자 도구를 사용하여 CSS 애니메이션의 성능을 측정 할 수 있습니다. 예를 들어 Chrome에서 성능 탭을 사용하여 애니메이션 런타임을 녹화하고 분석 할 수 있습니다. 이 도구는 애니메이션 라이프 사이클에서 시간 소비에 대한 자세한 분석을 제공하여 성능 병목 현상을 식별하는 데 도움이됩니다.부드러운 CSS 애니메이션의 이상적인 프레임 속도는 얼마입니까? 부드러운 애니메이션의 이상적인 프레임 속도는 초당 60 프레임 (FPS)입니다. 대부분의 장치가 초당 60 회 화면을 새로 고치기 때문입니다. 따라서 부드러운 애니메이션을 만들려면 60fps에 해당하는 16.67 밀리 초 (1 초/60)마다 애니메이션을 업데이트해야합니다. 더 나은 성능을 위해 CSS 애니메이션을 최적화하는 방법은 무엇입니까? 더 나은 성능을 위해 CSS 애니메이션을 최적화하기위한 다양한 전략이 있습니다. 일반적인 접근법은 및 와 같은 게시 또는 작업을 트리거하지 않는 애니메이션 속성에 대한 것입니다. 또한 애니메이션과 애니메이션을 단순화하는 요소의 수를 줄이면 성능을 향상시킬 수 있습니다. 속성을 사용하면 애니메이션 할 수있는 속성을 프롬프트하여 브라우저가 애니메이션을 최적화하는 데 도움이 될 수 있습니다. 성능 측면에서 CSS 애니메이션과 JavaScript 애니메이션의 차이점은 무엇입니까? 하드웨어 가속이 CSS 애니메이션 성능에 어떤 영향을 미칩니 까? transform
하드웨어 가속은 CSS 애니메이션의 성능을 크게 향상시킬 수 있습니다. 하드웨어 가속화가 활성화되면 브라우저는 일부 렌더링 작업을 장치의 GPU에 오프로드하여 CPU를 제거하여 다른 작업을 처리합니다. 이로 인해 특히 복잡한 애니메이션이나 많은 요소가 포함 된 애니메이션에서 더 부드러운 애니메이션으로 이어질 수 있습니다. opacity
will-change
애니메이션 성능에서 기능은 어떤 역할을합니까?함수는 다음 리판 전에 지정된 기능을 호출하여보다 효율적인 애니메이션을 허용하는 JavaScript 메소드입니다. 즉, 애니메이션이 장치의 새로 고침 속도와 동기화되어 더 부드러운 애니메이션이 생길 수 있습니다. 또한 브라우저는 애니메이션을 최적화하고 CPU 사용량을 줄이며 성능을 향상시킬 수 있습니다.
DevTools의 성능 패널을 사용하여 CSS 애니메이션 성능을 향상시키는 방법은 무엇입니까? DevTools의 성능 패널은 애니메이션 수명주기에서 시간 소비에 대한 자세한 분석을 제공합니다. 이 데이터를 분석하면 성능 병목 현상을 식별하고 그에 따라 애니메이션을 최적화 할 수 있습니다. 예를 들어, 그리기에 많은 시간이 소비되면 애니메이션이 드로잉 작동을 트리거하지 않는 속성을 고려할 수 있습니다. 레이아웃 지터가 CSS 애니메이션 성능에 미치는 영향은 무엇입니까? 레이아웃 지터는 브라우저가 DOM의 변화로 인해 레이아웃 정보를 반복적으로 계산 해야하는 상황을 말합니다. 이는 CSS 애니메이션의 성능에 심각한 영향을 줄 수있어 애니메이션이 천천히 실행되거나 말더듬을 유발할 수 있습니다. 레이아웃 지터를 피하려면 DOM 읽기 및 작성 작업을 함께 배치하고 애니메이션을 피하여 게시 작업 속성을 유발하십시오. 애니메이션 성능을 향상시키기 위해 CSS 속성을 사용하는 방법은 무엇입니까?
속성은 브라우저가 더 많은 리소스를 소비하고 성능에 부정적인 영향을 미칠 수 있으므로will-change
속성을 사용하면 애니메이션에 대한 속성에 대해 브라우저에 알릴 수 있습니다. 이를 통해 브라우저는 애니메이션이 시작되기 전에 필요한 최적화를 수행 할 수 있으므로 애니메이션이 더 부드럽습니다. 그러나속성을주의해서 사용해야합니다.
will-change
will-change
(위의 모든 링크를 실제 링크로 대체해야합니다)
, , ,
, 등), 결과는 말더듬 될 수 있습니다.
폭포 흐름 요약 아래의 녹색 막대는 프레임 속도 정보를 나타냅니다.
직사각형 자주색 프레임은 무한 루프에서 볼 수 없습니다.
속성을 나타내는 애니메이션으로 이것을한다. 속성을 애니메이션하기 때문에 코드를 변경하고 새로운 녹화를 수행 할 것입니다.
프레임 속도는 이제 더 높고 (56.83fps), 폭포 흐름에는 비용이 많이 드는 레이아웃 및 드로잉 작업이 표시되지 않습니다.
CSS의 및 에만 해당됩니다
그러나 각 브라우저는 CSS 속성을 약간 다르게 처리합니다. 어떤 브라우저가 어떤 속성 (특히 웹 애니메이션에 관여하는 이러한 속성의 값을 업데이트 할 때)을 게시하고 작업하는 작업을 트리거 할 경우 CSS 트리거를 방문하십시오. 기술을 사용하여이를 달성 할 수 있습니다. 이 모든 팁은 작동하지만 과도하게 사용하면 실제로 피하려고하는 결과, 즉 애니메이션 말더듬을 얻을 수 있습니다.
CSS 애니메이션 및 전환 성능 : Max Vujovic의 브라우저 내부를보고
Paul Lewis와 Sam Thorogood의 애니메이션과 공연 애니메이션 블록은 다음과 같습니다
<div>
<i>이 애니메이션에서 얻은 성능 데이터는 다음과 같습니다.
<code>margin-left
프레임 속도 시각화는 평균 프레임 속도가 44.82fps의 평균 프레임 속도로 약간 고르지 않은 것처럼 보입니다. @keyframes
또한 애니메이션 프로세스 중에 발생하는 모든 레이아웃 및 드로잉 작업에주의하십시오. 이들은 브라우저가 메인 스레드에서 수행하는 비용이 많이 드는 작업으로 성능에 부정적인 영향을 미칩니다.
@keyframes slide-margin {
100% {
margin-left: 0;
}
}
이제 브라우저 가이 블록을 사용하여 CSS
또한 개발자 도구의 "Inspector"탭을 열면 "애니메이션"패널에 액세스하고 애니메이션 이름으로 호버링하면 다음과 같은 내용이 표시됩니다.
will-change
자원
translateZ(0)
Paul Lewis와 Paul Irish의 고성능 애니메이션 translate3d(0,0,0)
Compositor-only Properties를 고수하고 Paul Lewis의 레이어 수를 관리
Sara Soueidan의 GPU Composited CSS의 트릭
위 내용은 CSS 최적화 : DevTools로 애니메이션 성능 조정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

CSS 그리드는 복잡하고 반응이 좋은 웹 레이아웃을 만드는 강력한 도구입니다. 디자인을 단순화하고 접근성을 향상 시키며 이전 방법보다 더 많은 제어를 제공합니다.

기사는 반응 형 설계에서 공간의 효율적인 정렬 및 분포를위한 레이아웃 방법 인 CSS Flexbox에 대해 설명합니다. Flexbox 사용을 설명하고 CSS 그리드와 비교하고 브라우저 지원 세부 사항을 설명합니다.

이 기사는 Viewport Meta 태그, 유연한 그리드, 유체 미디어, 미디어 쿼리 및 상대 장치를 포함하여 CSS를 사용하여 반응 형 웹 사이트를 만드는 기술에 대해 설명합니다. 또한 CSS 그리드 및 Flexbox를 함께 사용하여 CSS 프레임 워크를 권장합니다.

이 기사는 요소 치수 계산 방법을 제어하는 CSS 박스 크기 속성에 대해 설명합니다. Content-Box, Border-Box 및 Padding-Box와 같은 값과 레이아웃 설계 및 형태 정렬에 미치는 영향을 설명합니다.

기사는 CSS, 주요 특성 및 JavaScript와 결합 된 애니메이션 작성에 대해 논의합니다. 주요 문제는 브라우저 호환성입니다.

기사는 3D 변환, 주요 속성, 브라우저 호환성 및 웹 프로젝트에 대한 성능 고려 사항에 대한 CSS 사용에 대해 논의합니다. (문자 수 : 159)

이 기사는 CSS 그라디언트 (선형, 방사형, 반복)를 사용하여 웹 사이트 비주얼을 향상시키고 깊이, 초점 및 현대적인 미학을 추가합니다.

기사는 CSS의 의사 요소, HTML 스타일을 향상시키는 데 사용 및 의사 급의 차이점에 대해 설명합니다. 실제 사례를 제공합니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

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

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

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

WebStorm Mac 버전
유용한 JavaScript 개발 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
