js 애니메이션을 할 때 한 애니메이션이 완료된 후 이벤트를 트리거하거나, 한 애니메이션이 완료된 후 다른 애니메이션을 실행하는 등 콜백 처리를 해야 하는 경우가 많은데 CSS3 애니메이션을 사용하면 캡처할 수 있나요? 모션 상태에 대한 콜백 처리는 어떻습니까?
CSS3 애니메이션도 콜백으로 처리할 수 있습니다. 두 가지 속성으로 나누어집니다. 하나는 전환[w3c 문서]이고 다른 하나는 애니메이션[w3c 문서]입니다.
1. Transition
전환의 경우 애니메이션이 완료될 때 트리거되는 전환 종료 이벤트를 사용할 수 있습니다.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>css3-transitionend - BeyondWeb</title> <style> * {margin: 0; padding: 0;} .rect { width: 100px; height: 100px; background-color: #f80; -webkit-transition: all .5s; } </style> <script> window.onload = function () { var _rect = document.querySelector('.rect'); _rect.onclick = function () { _rect.style.webkitTransform = 'translateX(300px)'; } _rect.addEventListener('webkitTransitionEnd', function () { alert('动画执行完毕!'); // callback here }, false); } </script> </head> <body> <p class="rect"></p> </body> </html>
2. animation
애니메이션의 경우 animationend 이벤트를 들을 수 있습니다. 코드는 다음과 같습니다.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>css3-animationend - BeyondWeb</title> <style> * {margin: 0; padding: 0;} .rect { position: relative; width: 100px; height: 100px; background-color: #f80; } @-webkit-keyframes move { from { -webkit-transform: rotate(0); } to { -webkit-transform: rotate(360deg); } } </style> <script> window.onload = function () { var _rect = document.querySelector('.rect'); _rect.onclick = function () { _rect.style.webkitAnimation = 'move 3s'; } _rect.addEventListener('webkitAnimationEnd', function () { alert('动画执行完毕!'); // callback here }, false); } </script> </head> <body> <p class="rect"></p> </body> </html>
최근 H5 페이지를 만들 때 사용했던 CSS3 애니메이션 콜백 처리에 대한 내용입니다.
CSS3 애니메이션의 콜백 처리에 대해 간략하게 설명한 위 글은 모두 편집자가 공유한 내용이므로 참고가 되셨으면 좋겠고, PHP 중국어 홈페이지에 많은 지원 부탁드립니다.
CSS3 애니메이션의 콜백 처리 방법에 대한 더 많은 관련 글은 PHP 중국어 홈페이지를 주목해주세요!