translateZ 트릭
CSS 필터는 훌륭합니다
CSS 필터는 정말 멋집니다. 그들은 다음과 같은 것을 취할 수 있습니다…
...다음과 같이 만듭니다.
좋아. 이와 같은 효과는 CSS 작성의 재미있는 부분입니다.
그리고
blur()
는 많은 재미있는 filter
옵션 중 하나일 뿐입니다. 나머지는 나열됩니다here.CSS 필터는 페이지 안팎 또는 전경 안팎에서 항목에 애니메이션을 적용해야 할 때 특히 유용합니다. 예를 들어 항목이 페이지에서 애니메이션으로 표시될 때 항목을 점점 더 흐리게 처리할 수 있습니다. 또는 사용자가 모달을 열 때 모달 콘텐츠에 대한 사용자의 주의를 유도하기 위해 그 뒤의 페이지를 점진적으로 흐리게 할 수 있습니다.
사파리 문제
불행하게도 CSS
filter
속성에 애니메이션 효과를 주기 시작하면 Safari에서 애니메이션이 심하게 고르지 않다는 것을 알게 될 것입니다.몇 년 전 직장에서 CSS 필터를 애니메이션화하는 동안 이 문제에 부딪쳤습니다. 그리고 저는 최근에 Scott Tolinski가 한탄하고 Syntax 팟캐스트에서 그가 CSS 필터를 사용하는 것에 흥분했지만 이 Safari 렌더링 문제 때문에 필터를 포기할 수밖에 없었다는 것을 들었습니다.
그러나 수정 사항이 있습니다! 그것이 Scotty를 돕기 위해서만 이 게시물을 작성하는 이유입니다. 😎
수정
Safari에서 문제를 해결하려면 다음을 수행하십시오…
.thing {
filter: blur(4px);
}
...다음과 같이 변경합니다.
.thing {
filter: blur(4px);
transform: translateZ(0);
}
그게 다야. 이제 Safari에서 애니메이션이 원활하게 실행됩니다.
translateZ는 어떻게 도움이 되나요?
애니메이션이 원활하게 실행되는 기본적인 이유
translateZ(ANY_VALUE)
는 Safari에 CPU 대신 GPU를 사용하여 애니메이션을 렌더링하도록 지시하기 때문입니다.translateZ
(또는 유사한 힌트)가 없으면 Safari는 복잡한 그래픽을 거의 렌더링할 수 없는 CPU를 사용하여 filter
애니메이션을 시도합니다. 필터 효과 애니메이션과 같은 그래픽 집약적인 작업의 경우 GPU가 항상 훨씬 더 나은 작업을 수행합니다.우리를 도와줘, 사파리
Chrome 및 기타 비 Safari 브라우저는 GPU를 사용하여 이와 같은 애니메이션을 자동으로 하드웨어 가속하지만 Safari는 여전히 동일한 결과를 얻으려면
translateZ
와 같은 특정 속성을 추가해야 합니다.Safari 팀이 곧 이 문제를 해결하여 Scott이 이와 같은 해결 방법을 사용하지 않고도 좋아하는 모든 멋진 CSS 기능을 애니메이션으로 만들 수 있기를 바랍니다.
그때까지
translateZ
는 당신의 친구입니다.관련된 링크들
translateZ | MDN 웹 문서
CSS filter | MDN 웹 문서
CSS Filter Effects landing in WebKit — 2011년에
translateZ
가 필요하다고 언급 | Chrome 개발자Increase Your Site’s Performance with Hardware-Accelerated CSS | 트리하우스
Improving HTML5 App Performance with GPU Accelerated CSS Transitions | 어반 인사이트 ********
CSS GPU Animation: Doing It Right | 스매싱 매거진
Web Performance Fundamentals — 일부 플랫폼에서 하드웨어 가속 CSS 애니메이션을 얻으려면 여전히
translateZ
가 필요하다고 요청 | MDN 웹 문서— 동일한 트릭의
translate3d
버전 제안 | 트위터Reference
이 문제에 관하여(translateZ 트릭), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ooloth/the-translatez-trick-13ao텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)