브라우저 전환 시 CSS 리플로우 문제 이해
CSS3 전환을 사용하여 반응형 이미지 슬라이더를 생성할 때 CSS 속성이 수정될 때의 애니메이션. 전환 속성을 초기화했음에도 불구하고 브라우저는 변경 사항을 무시하고 원하는 애니메이션을 실행하지 않을 수 있습니다.
해결책: 리플로우를 강제로 애니메이션 트리거
이 문제에 대한 해결책은 다음에 있습니다. 페이지의 레이아웃과 렌더링을 다시 계산하는 브라우저 리플로우를 강제합니다. 이는 요소의 offsetHeight 속성에 액세스하여 달성할 수 있습니다. 다음 JavaScript 함수가 이를 수행합니다.
function reflow(elt) { console.log(elt.offsetHeight); }
구현:
솔루션을 구현하려면 애니메이션을 트리거하는 CSS 속성을 수정한 후 reflow() 함수를 호출하세요. . 예:
ul.style.transition = 'none 0s linear'; ul.style.left = '-600px'; ul.style.transition = 'all 0.2s ease-out'; reflow(ul); // Forces a reflow ul.style.left = '0px';
참고:
최근 최적화에는 최적화 도구로서 console.log(elt.offsetHeight)를 void(elt.offsetHeight)로 바꾸는 것이 포함됩니다. 잠재적인 부작용으로 인해 이 설명을 무시할 가능성은 적습니다.
위 내용은 내 CSS 전환이 가끔 애니메이션에 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!