>  기사  >  웹 프론트엔드  >  CSS3 애니메이션 다시 시작: 리플로우가 요소 제거에 대한 최선의 대안입니까?

CSS3 애니메이션 다시 시작: 리플로우가 요소 제거에 대한 최선의 대안입니까?

DDD
DDD원래의
2024-11-11 04:55:03481검색

Restarting CSS3 Animations: Is Reflow the Best Alternative to Element Removal?

CSS3 애니메이션 다시 시작: 요소 제거에 대한 향상된 대안

CSS3 애니메이션을 다시 시작할 때 자주 사용되는 흥미로운 기술은 문서의 애니메이션 요소를 제거하고 해당 복제본을 다시 삽입합니다. 이 접근 방식은 효과적이면서도 최적화할 수 있는 기회를 제공합니다.

익명 전문가가 제안한 대로 애니메이션을 다시 시작하는 데 선호되는 방법은 리플로우를 트리거하는 것입니다. 이는 아래에 설명된 것처럼 HTMLElement의 높이에 액세스하여 간단히 수행할 수 있습니다.

function reset_animation() {
  var el = document.getElementById('animated');
  el.style.animation = 'none';
  el.offsetHeight; /* trigger reflow */
  el.style.animation = null; 
}

이 예에서 애니메이션은 처음에 '없음'으로 설정되어 재설정을 트리거합니다. 그 후, 요소의 크기를 계산하고 캐시하는 요소의 offsetHeight에 액세스하여 리플로우가 시작되고 이에 따라 애니메이션 재설정이 적용됩니다. 마지막으로 애니메이션 스타일에 'null' 값을 할당하면 다시 재생할 수 있습니다.

이 리플로우 기반 접근 방식은 간결하고 효율적이며 단순성과 효율성 측면에서 이전 방식을 능가합니다.

위 내용은 CSS3 애니메이션 다시 시작: 리플로우가 요소 제거에 대한 최선의 대안입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.