css3动画事件—webkitAnimationEnd与计时器time事件


Posted in HTML / CSS onJanuary 31, 2013

用css3的animation完成一个动画,当只有这个动画完成时才执行令一个事件,比如让动画保持在终止的状态或其他一些事件。我们该怎么办呢。
第一种方法
用计时器,设定一个和动画时长一样的time,过time事件去执行这个函数。
setTimeout(function(){ },time);
第二种方法
当-webkit-animation动画结束时有一个webkitAnimationEnd事件,只要监听这个事件就可以了。
例子:

复制代码
代码如下:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="@my_programmer">
<title>webkitAnimationEnd</title>
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="format-detection" content="telephone=no"/>
<style type="text/css">
#div{
width:200px;
height:200px;
background:#f60;
margin:100px auto;
-webkit-transition: all ease 1s;
}
.change{
-webkit-animation: transform 1s 2 ease;
}
@-webkit-keyframes transform {
% { -webkit-transform: scale(1)}
% { -webkit-transform: scale(2)}
% { -webkit-transform: scale(0.5)}
% { -webkit-transform: scale(1)}
}
</style>
</head>
<body>
<div id="div"></div>
<script type="text/javascript">
var tt = document.querySelector('#div');
tt.addEventListener("click", function(){
this.className = 'change';
}, false);
tt.addEventListener("webkitAnimationEnd", function(){ //动画结束时事件
this.className = this.className.replace('change', ' ');
console.log(2);
}, false);
</script>
</body>
</html>

拓展
1、-webkit-animation动画其实有三个事件:
开始事件 webkitAnimationStart
结束事件 webkitAnimationEnd
重复运动事件 webkitAnimationIteration
你可以在上个例子中测试一下这两个事件
复制代码
代码如下:

tt.addEventListener("webkitAnimationStart", function(){ //动画开始时事件
console.log(1);//动画开始时,控制台输出1
}, false);
tt.addEventListener("webkitAnimationIteration", function(){ //动画重复运动时的事件
console.log(3);//第一遍动作完成时,控制台输出3
}, false);

2、css3的过渡属性transition,在动画结束时,也存在结束的事件:webkitTransitionEnd;
注意:transition,也仅仅有这一个事件。
HTML / CSS 相关文章推荐
利用CSS3的checked伪类实现OL的隐藏显示的方法
Dec 18 HTML / CSS
css 省略号 css3让多余的字符串消失并附加省略号的实现代码
Feb 07 HTML / CSS
css3教程之倾斜页面
Jan 27 HTML / CSS
深入浅析css3 中display box使用方法
Nov 25 HTML / CSS
基于ccs3的timeline时间线实现方法
Apr 30 HTML / CSS
css3 transform过渡抖动问题解决
Oct 23 HTML / CSS
浅析CSS3 用text-overflow解决文字排版问题
Oct 28 HTML / CSS
Android本地应用打开方法——通过html5写连接
Mar 11 HTML / CSS
HTML5之web workers_动力节点Java学院整理
Jul 17 HTML / CSS
使用CSS实现弹性视频html5案例实践
Dec 26 HTML / CSS
浅析HTML5的WebSocket与服务器推送事件
Feb 19 HTML / CSS
解决html5中video标签无法播放mp4问题的办法
May 07 HTML / CSS
CSS3 制作绽放的莲花采用效果叠加实现
Jan 31 #HTML / CSS
CSS3 制作旋转的大风车(充满童年回忆)
Jan 30 #HTML / CSS
css3简单练习实现遨游浏览器logo的绘制
Jan 30 #HTML / CSS
IE滤镜与CSS3效果(详细整理分享)
Jan 25 #HTML / CSS
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
Jan 23 #HTML / CSS
纯css3无js实现的Android Logo(有简单动画)
Jan 21 #HTML / CSS
定义css设备类型-Media Queries图表简介及使用方法
Jan 21 #HTML / CSS
You might like
浅析PHP的ASCII码转换类
2013/07/05 PHP
PHP中overload与override的区别
2017/02/13 PHP
PHP针对伪静态的注入总结【附asp与Python相关代码】
2017/08/01 PHP
php数组指针函数功能及用法示例
2020/02/11 PHP
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
javascript获取URL参数与参数值的示例代码
2013/12/20 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
2020/09/01 Javascript
详解JavaScript中常用的函数类型
2015/11/18 Javascript
js小数计算小数点后显示多位小数的实现方法
2016/05/30 Javascript
JavaScript中 this 指向问题深度解析
2017/02/21 Javascript
vue.js指令v-model使用方法
2017/03/20 Javascript
JavaScript算法教程之sku(库存量单位)详解
2017/06/29 Javascript
Angular6 写一个简单的Select组件示例
2018/08/20 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
2018/08/24 Javascript
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
2019/02/02 NodeJs
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
Python3访问并下载网页内容的方法
2015/07/28 Python
Python实现PS滤镜的旋转模糊功能示例
2018/01/20 Python
Python网络编程使用select实现socket全双工异步通信功能示例
2018/04/09 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
2018/04/24 Python
Python内存读写操作示例
2018/07/18 Python
python画蝴蝶曲线图的实例
2019/11/21 Python
Python pickle模块实现对象序列化
2019/11/22 Python
python实现逻辑回归的示例
2020/10/09 Python
python 实现ping测试延迟的两种方法
2020/12/10 Python
德国药房apodiscounter中文官网:德国排名前三的网上药店
2019/06/03 全球购物
面试后感谢信
2014/02/01 职场文书
小学开学典礼主持词
2014/03/19 职场文书
社区文化建设方案
2014/05/02 职场文书
车间安全生产标语
2014/06/06 职场文书
带香烟到学校抽的检讨书
2014/09/25 职场文书
2015年教师节感言
2015/08/03 职场文书
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android