本文Demo:https://www.lyz810.com/demo/cssAnimationEvent/index.html
一、animationstart和animationend事件
animationstart事件在Animation动画开始时触发,对于低版本的webkit内核浏览器使用webkitAnimationStart事件
animationend事件在Animation动画停止时触发,对于低版本的webkit内核浏览器使用webkitAnimationEnd事件
用法示例:
document.querySelector('#test').addEventListener('animationstart', function(){ console.log('动画开始'); }); document.querySelector('#test').addEventListener('animationend', function(){ console.log('动画结束'); });
二、animationiteration事件
animationiteration事件会在Animation动画循环播放时触发,主要用于infinite类型的动画,会在每次循环播放完毕时触发。
无限循环的动画会触发animationstart、animationiteration两个事件。
对于低版本的webkit内核浏览器使用webkitAnimationIteration事件。
用法示例:
css: @keyframes ani{ from{margin-left: 0;} to{margin-left: 300px;} } #test{animation:ani 3s infinite;} js: document.querySelector('#test').addEventListener('animationiteration', function(){ console.log('动画播放循环一次'); });
三、transitionend事件
transitionend事件在transition动画结束后触发。
用法示例:
document.querySelector('#test').addEventListener('transitionend', function(){ console.log('过渡动画完毕'); });