原文:原生js判断css动画结束 css 动画结束的回调函数

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> http://www.webhek.com/css-animation-callback/    来源于web骇客</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 οnclick="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';}})();</script>
</body>
</html>
 
 

原生js判断css动画结束 css 动画结束的回调函数相关推荐

  1. 原生js判断iPhoneX系列手机型号

    #原生js判断iPhoneX系列手机型号 static isIphone() {return /iphone/gi.test(window.navigator.userAgent)}static is ...

  2. html动态加载js方法,原生JS实现动态加载js文件并在加载成功后执行回调函数的方法...

    本文实例讲述了原生JS实现动态加载js文件并在加载成功后执行回调函数的方法.分享给大家供大家参考,具体如下: 有的时候需要动态加载一个javascript文件,并且在加载成功后执行回调函数(例如文件中 ...

  3. vue 判断字符串是否是英文_vue rules以及原生js判断字符串是否为正整数(正小数)...

    1.在vue中 使用rules形式进行校验 1.首先在vue文件的methods()中添加校验方法,这里校验方法命名为isNumber用自带的.test方法进行正则校验 methods: { isNu ...

  4. js判断数据类型(如数组)及数组操作函数

    在ES5的时候,js数据类型有6种:Number.String.Boolean.undefined.object.Null. 注:https://blog.csdn.net/u013592575/ar ...

  5. 原生js瀑布流效果,css+html+js,复制下来可直接使用

    html里面总共需要引入三个文件 css文件两个,js代码一个 :::json文件里面的图片就自己增改把 html页面 <div class="container" id=& ...

  6. blr不是已知的css属性名,js判断并告知支持css属性(值)的何种情况

    前言 当我们想用某个css新特性时,总是会在意它的兼容性情况,或许我们会去搜索它的兼容性,哪些浏览器合适哪些不合适,在这些已知的情况下再选择是不是使用或如何使用,这是一个已知我们即将用于什么浏览器下作 ...

  7. js判断类型为数字的方法实现总汇——原生js判断isNumber()

    方法一[推荐]: 最容易想到的是用typeof来判断是否是number类型 ,但是如果为NaN会被认为也是number类型,因此我们需要使用isNaN来排除NaN的情况. function isNum ...

  8. 原生js判断IE浏览器版本

    // 判断IE浏览器版本function IEVersion() {var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 var isIE ...

  9. 用原生JS判断页面是否滑动到底部

    window.onscroll=function(){//变量scrollTop是滚动条滚动时,滚动条上端距离顶部的距离var scrollTop = document.documentElement ...

最新文章

  1. 脚本命令远程访问计算机,在远程电脑上执行任意命令 (利用 Autohotkey ahk http 服务器)...
  2. JS触发Click操作以及获得事件源(转)
  3. OSError:[Errno 13] Permission denied:'my_library' 问题解决方法
  4. 利用koa实现mongodb数据库的增删改查
  5. 为什么IEE754标准中,32位浮点数的指数转换为阶码时需要加上数值为127的偏移量?
  6. 网络编程——常用协议解析
  7. layui按钮展开、_layui可折叠的组织架构树形图
  8. 【HDOJ】4363 Draw and paint
  9. maven仲裁机制_maven仲裁机制
  10. 浅谈RSTP的快速收敛机制 P/A机制
  11. 软件工程项目____搜查令
  12. Load balancer does not have available server for client:xxx
  13. 生物计算机是未来型计算机吗,生物计算机特点及未来发展
  14. 实时视频传输协议RTP
  15. 二十个不可不知的 TSM 知识点
  16. could not create folder “sftp://xxx.xxx.xxx.xxx/.../venv“. (Permission denied)
  17. python集合增加元素_python集合的新增元素方法整理
  18. 小波分解的系数个数如何计算
  19. axure生成的html不能用360浏览器打开
  20. java暂挂状态,Guarded Suspension(保护性暂挂)模式

热门文章

  1. Ubuntu18.04 安装MySQL、Navicat
  2. php函数表达式,php正则表达式常用函数介绍
  3. json list格式_来来来,一文让你读懂Cocos Creator如何读写JSON文件
  4. cpu和显卡瓶颈测试软件,《怪物猎人:世界》CPU测试:4核成瓶颈、6核才够用
  5. 神策数据成为 Adjust 在中国首家数据分析合作伙伴
  6. 深度案例 | 纷享销客:用户需求精准洞察下的敏捷开发
  7. 神策 FM:每周成长 8%,企业用户增长四步骤——一个成功案例
  8. 20181009-9 每周例行报告
  9. Some notes for CLFS2017
  10. iOS NSNotificationCenter 使用姿势详解