关于CSS3动画结束监听的问题

html-css014

关于CSS3动画结束监听的问题,第1张

<html>

<script src="scripts/jquery.min.js"></script>

<head>

    <style>

        div { width: 100px height: 100px background: blue transition: width 1s -moz-transition: width 1s /* Firefox 4 */ -webkit-transition: width 1s /* Safari and Chrome */ -o-transition: width 1s /* Opera */ }

        

        div:hover { width: 300px }

    </style>

</head>

<body>

    <div id="demo">

    </div>

    <br />

    <script type="text/javascript">

$("div").one("webkitTransitionEnd otransitionend transitionend",function(){

alert("11")

})

    </script>

</body>

</html>

我用我的代码测试正常,,,你的话,懒得打,,

还有你的你的ALERT,输出的11是变量吗???为什么没有""

alert("11")

应该可以输出

还记得许多年前,我们为一个元素添加有一个动画class之后,你还在用settimeout来延迟下一个动作,这么做过时啦。

哪怎么做呢。

不是添加了一个类么,哪动画结束以后来执行这个动作呗。

哪么动画有两种,还是要区别对待的。

1.animation

2.transition

-webkit-animation动画其实有三个事件:

开始事件 webkitAnimationStart

结束事件 webkitAnimationEnd

重复运动事件 webkitAnimationIteration

嗯 对 就是这么简单 后面的实际用例我会附上

待更新中。。。

这篇文章写出来以后,朋友反馈过来有兼容性问题。

iOS9一下和安卓4.4一下是不支持的。

因为现在大多数项目技术栈是vue,这里我就推荐使用vue的过渡钩子函数beforeLeave来解决这个问题,关于vue过渡常见的用法和解惑我会单独开一篇文章去写这个东西。

其他比较好的解决方案还是使用setTimeout去解决这个问题。

https://developer.mozilla.org/en-US/docs/Web/Events/transitionend

注意:每个启用TransitionCSS属性的分别对应独立的transitionend事件