javascript判断css3动画结束 css3动画结束的回调函数


Posted in Javascript onMarch 10, 2015

css3 的时代,css3--动画 一切皆有可能;

javascript判断css3动画结束 css3动画结束的回调函数

传统的js 可以通过回调函数判断动画是否结束;即使是采用CSS技术生成动画效果,JavaScript仍然能捕获动画或变换的结束事件;

transitionend事件和animationend事件标准的浏览器事件,但在WebKit浏览器里你仍然需要使用webkit前缀,所以,我们不得不根据各种浏览器分别检测事件

var transitions = {

       'transition':'transitionend',

       'OTransition':'oTransitionEnd',

       'MozTransition':'transitionend',

       'WebkitTransition':'webkitTransitionEnd'

     }

下面附上源代码:

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>suface   js判断css动画是否结束</title>

</head>

<body>

<p>一旦动画或变换结束,回调函数就会触发。不再需要大型类库支持。<br> </p>

<style type="text/css">

.sample {

width: 200px;

height: 200px;

border: 1px solid green;

background: lightgreen;

opacity: 1;

margin-bottom: 20px;

transition-property: opacity;

/*transition-duration: .5s;*/

transition-duration:3s;

}

  .sample.hide {

opacity: 0;

}

</style>

<div class="sample">css3动画过度慢慢隐藏(transition-duration:3s;)</div>

<p><button onclick="this.style.display='none';startFade();">慢慢消退,检测结束事件</button></p>

<script>             

                   (function() {

   var e = document.getElementsByClassName('sample')[0];

   function whichTransitionEvent(){

       var t;

       var el = document.createElement('fakeelement');

       var transitions = {

         'transition':'transitionend',

         'OTransition':'oTransitionEnd',

         'MozTransition':'transitionend',

         'WebkitTransition':'webkitTransitionEnd'

       }

       for(t in transitions){

           if( el.style[t] !== undefined ){

               return transitions[t];

           }

       }

   }

   var transitionEvent = whichTransitionEvent();

   transitionEvent && e.addEventListener(transitionEvent, function() {

    alert('css3运动结束!我是回调函数,没有使用第三方类库!');

   });

   startFade = function() {

    e.className+= ' hide';

   }

  })();<br></script>

</body>

</html>

以上就是本文所述的关于javascript判断CSS3动画结束的方法,希望大家能够喜欢

Javascript 相关文章推荐
functional继承模式 摘自javascript:the good parts
Jun 20 Javascript
js关闭当前页面(窗口)的几种方式总结
Mar 05 Javascript
Javascript 数组排序详解
Oct 22 Javascript
JS动态创建元素的两种方法
Apr 20 Javascript
AngularJS入门教程之ng-checked 指令详解
Aug 01 Javascript
Node.js中路径处理模块path详解
Nov 14 Javascript
老生常谈javascript的面向对象思想
Aug 22 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
Feb 10 Javascript
Vue项目history模式下微信分享爬坑总结
Mar 29 Javascript
vue在响应头response中获取自定义headers操作
Jul 24 Javascript
浅谈JavaScript中的“!!”作用
Aug 03 Javascript
如何检测JavaScript中的死循环示例详解
Aug 30 Javascript
jQuery实现表格颜色交替显示的方法
Mar 09 #Javascript
jQuery实现个性翻牌效果导航菜单的方法
Mar 09 #Javascript
jQuery实现可用于博客的动态滑动菜单
Mar 09 #Javascript
JQuery操作元素的css样式
Mar 09 #Javascript
jQuery实现仿美橙互联两级导航菜单的方法
Mar 09 #Javascript
jquery获取及设置outerhtml的方法
Mar 09 #Javascript
jQuery给动态添加的元素绑定事件的方法
Mar 09 #Javascript
You might like
在字符串中把网址改成超级链接
2006/10/09 PHP
修改了一个很不错的php验证码(支持中文)
2007/02/14 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
php获取给定日期相差天数的方法分析
2017/02/20 PHP
jquery里的each使用方法详解
2010/12/22 Javascript
一个背景云变换js特效 鼠标移动背景云变化
2012/12/28 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
2013/11/14 Javascript
jQuery使用CSS()方法给指定元素同时设置多个样式
2015/03/26 Javascript
基于javascript实现按圆形排列DIV元素(二)
2016/12/02 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
JS设置时间无效问题的解决办法
2017/02/18 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
easyUI使用分页过滤器对数据进行分页操作实例分析
2020/06/01 Javascript
[02:39]DOTA2英雄基础教程 极限穿梭编织者
2013/12/05 DOTA
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
python实现数据写入excel表格
2018/03/25 Python
python 实现对文件夹中的图像连续重命名方法
2018/10/25 Python
python Elasticsearch索引建立和数据的上传详解
2019/08/04 Python
中国医药集团国药在线:国药网
2017/02/06 全球购物
酒店保洁主管岗位职责
2013/11/28 职场文书
制药工程专业毕业生推荐信
2013/12/24 职场文书
高二政治教学反思
2014/02/01 职场文书
大学优秀班主任事迹材料
2014/05/02 职场文书
爱国演讲稿500字
2014/05/04 职场文书
妇联主席先进事迹
2014/05/18 职场文书
2015新年联欢晚会开场白
2014/12/14 职场文书
工地材料员岗位职责
2015/04/11 职场文书
罗马假日观后感
2015/06/08 职场文书
法院执行局工作总结
2015/08/11 职场文书
Go语言中break label与goto label的区别
2021/04/28 Golang