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和jquery实现可伸缩搜索框
Feb 12 HTML / CSS
css3使网页、图片变成灰色兼容大多数浏览器
Jul 02 HTML / CSS
CSS3制作炫酷的下拉菜单及弹起式选单的实例分享
May 17 HTML / CSS
利用CSS3实现单选框动画特效示例代码
Sep 26 HTML / CSS
CSS3实现文本垂直排列的方法
Jul 10 HTML / CSS
html5利用canvas绘画二级树形结构图的示例
Sep 27 HTML / CSS
HTML5文档结构标签
Apr 21 HTML / CSS
HTML5 新事件 小结
Jul 16 HTML / CSS
开发人员所需要知道的HTML5性能分析面面观
Jul 05 HTML / CSS
html5 跨文档消息传输示例探讨
Apr 01 HTML / CSS
html5录音功能实战示例
Mar 25 HTML / CSS
html+css 实现简易导航栏功能
Apr 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 第一节 php简介
2012/04/28 PHP
php检测文件编码的方法示例
2014/04/25 PHP
php中return的用法实例分析
2015/02/28 PHP
php获取文件类型和文件信息的方法
2015/07/10 PHP
详解Yii实现分页的两种方法
2017/01/14 PHP
PHP实现一个限制实例化次数的类示例
2019/09/16 PHP
js chrome浏览器判断代码
2010/03/28 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
jQuery中DOM操作实例分析
2015/01/23 Javascript
jQuery实现跨域
2015/02/03 Javascript
jQuery使用drag效果实现自由拖拽div
2015/06/11 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
2015/12/04 Javascript
AngularJS使用ngMessages进行表单验证
2015/12/27 Javascript
jQueryUI DatePicker 添加时分秒
2016/06/04 Javascript
jQuery select自动选中功能实现方法分析
2016/11/28 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
vue小白入门教程
2018/04/02 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
Vue 后台管理类项目兼容IE9+的方法示例
2019/02/20 Javascript
Vue中fragment.js使用方法小结
2020/02/17 Javascript
[55:47]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第三局
2016/02/27 DOTA
Python内置数据类型详解
2014/08/18 Python
一个基于flask的web应用诞生 用户注册功能开发(5)
2017/04/11 Python
Python实现将通信达.day文件读取为DataFrame
2018/12/22 Python
Python爬虫学习之获取指定网页源码
2019/07/30 Python
python实现一次性封装多条sql语句(begin end)
2020/06/06 Python
CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义
2016/04/26 HTML / CSS
详解canvas drawImage()方法绘制图片不显示的问题
2018/10/08 HTML / CSS
党校培训自我鉴定范文
2014/03/20 职场文书
教师个人自我评价范文
2014/04/13 职场文书
出租房屋协议书
2014/09/14 职场文书
名人演讲稿范文
2014/09/16 职场文书
领导干部作风建设自查报告
2014/10/23 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
MySql按时,天,周,月进行数据统计
2022/08/14 MySQL