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实现信纸/同学录效果的示例代码
Dec 11 HTML / CSS
css3 iphone玻璃透明气泡完美实现
Mar 20 HTML / CSS
关于CSS Tooltips(鼠标经过时显示)的效果
Apr 10 HTML / CSS
基于CSS3制作立体效果导航菜单
Jan 12 HTML / CSS
详解CSS3浏览器兼容
Dec 14 HTML / CSS
css3实现画半圆弧线的示例代码
Nov 06 HTML / CSS
深入浅析CSS3中的Flex布局整理
Apr 27 HTML / CSS
CSS3只让背景图片旋转180度的实现示例
Mar 09 HTML / CSS
html5/css3响应式页面开发总结
Oct 16 HTML / CSS
HTML5本地数据库基础操作详解
Apr 26 HTML / CSS
使用css样式设计一个简单的html登陆界面的实现
Mar 30 HTML / CSS
CSS filter 有什么神奇用途
May 25 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使用curl获取https请求的方法
2015/02/11 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
2016/05/17 PHP
thinkPHP5.0框架安装教程
2017/03/25 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
jquery的颜色选择插件实例代码
2008/10/02 Javascript
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
理解Javascript_11_constructor实现原理
2010/10/18 Javascript
实现局部遮罩与关闭原理及代码
2013/02/04 Javascript
javascript实现控制文字大中小显示
2015/04/28 Javascript
Javascript闭包(Closure)详解
2015/05/05 Javascript
Angular JS数据的双向绑定详解及实例
2016/12/31 Javascript
Vue分页组件实例代码
2017/04/17 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
vue spa应用中的路由缓存问题与解决方案
2019/05/31 Javascript
[46:10]2014 DOTA2国际邀请赛中国区预选赛 CnB VS HGT
2014/05/21 DOTA
[50:34]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
python冒泡排序简单实现方法
2015/07/09 Python
python 爬取微信文章
2016/01/30 Python
Python实现命令行通讯录实例教程
2016/08/18 Python
利用Python为iOS10生成图标和截屏
2016/09/24 Python
python的Crypto模块实现AES加密实例代码
2018/01/22 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
全球最大的中文旅行网站:去哪儿网
2017/11/16 全球购物
澳大利亚新奇小玩意网站:Yellow Octopus
2017/12/28 全球购物
人事主管岗位职责范本
2013/12/04 职场文书
酒店员工职业生涯规划
2014/02/25 职场文书
文明村创建实施方案
2014/03/27 职场文书
美丽家庭事迹材料
2014/05/03 职场文书
升学宴演讲稿
2014/09/01 职场文书
2014年机关工会工作总结
2014/12/19 职场文书
公司酒会致辞
2015/07/30 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书
《艾尔登法环》发布最新「战技」宣传片
2022/04/03 其他游戏