完成CSS3动画时是否有回调?

alt*_*ter 87 javascript css frontend css3

在css3动画的情况下有没有办法实现回调函数?在Javascript动画的情况下,它可能但在css3中找不到任何方法.

我可以看到的一种方法是在动画持续时间之后执行回调,但这并不能确保在动画结束后立即调用它.它取决于浏览器UI队列.我想要一个更强大的方法.任何线索?

met*_*ion 125

就在这里.回调是一个事件,因此您必须添加一个事件侦听器来捕获它.这是jQuery的一个例子:

$("#sun").bind('oanimationend animationend webkitAnimationEnd', function() { 
   alert("fin") 
});
Run Code Online (Sandbox Code Playgroud)

或者纯粹的js:

element.addEventListener("webkitAnimationEnd", callfunction,false);
element.addEventListener("animationend", callfunction,false);
element.addEventListener("oanimationend", callfunction,false);
Run Code Online (Sandbox Code Playgroud)

现场演示:http: //jsfiddle.net/W3y7h/

  • @MichaelJones不,那是css3过渡.问题是关于动画. (13认同)
  • 它是`transitionend`,而不是`animationend`. (6认同)
  • +1除了jQuery之外还添加了纯js解决方案 (5认同)
  • @MartinWittemann IE10 final现在使用`animationend` http://msdn.microsoft.com/en-us/library/ie/hh673530(v=vs.85).aspx#msanimationend.@Husky代码在Chrome和FF 14中工作,请参阅更新的小提琴http://jsfiddle.net/W3y7h/ (4认同)
  • 对于IE10,它是'MSAnimationEnd'(参见http://msdn.microsoft.com/en-us/ie/hh272902#_CSSAnimations) (3认同)