手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >JavaScript探测CSS动画是否已经完成的方法
JavaScript探测CSS动画是否已经完成的方法
摘要:不啰嗦上代码:WN:(function(){varel=$(''),transition="transition",transitionEn...

不啰嗦上代码:

WN:(function(){ var el = $('<fakeelement>'), transition="transition", transitionEnd, animEvent={'start':null,'iteration':null,'end':null}, vendorPrefix; transition = transition.charAt(0).toUpperCase() + transition.substr(1); vendorPrefix=(function(){//现在的opera也是webkit var i=0, vendor=["Moz", "Webkit", "Khtml", "O", "ms"]; while (i < vendor.length) { if (typeof el.css(vendor[i] + transition) === "string"){ return vendor[i]; } i++; } return false; })(); transitionEnd=(function(){ var transEndEventNames = { WebkitTransition : 'webkitTransitionEnd', MozTransition : 'transitionend', OTransition : 'oTransitionEnd otransitionend', transition : 'transitionend' } for(var name in transEndEventNames){ if(typeof el.css(name) === "string"){ return transEndEventNames[name]; } } })(); animEvent.end=(function(){ var animEndEventNames = { WebkitAnimation : 'webkitAnimationEnd', animation : 'animationend' } for(var name in animEndEventNames){ if(typeof el.css(name) === "string"){ return animEndEventNames[name]; } } })(); animEvent.iteration=(function(){ var animIterationEventNames = { WebkitAnimation : 'webkitAnimationIteration', animation : 'animationiteration' } for(var name in animIterationEventNames){ if(typeof el.css(name) === "string"){ return animIterationEventNames[name]; } } })(); animEvent.start=(function(){ var animStartEventNames = { WebkitAnimation : 'webkitAnimationStart', animation : 'animationstart' } for(var name in animStartEventNames){ if(typeof el.css(name) === "string"){ return animStartEventNames[name]; } } })(); return { called:false, addTranEvent:function(elem,fn,duration){ var self = this; var fncallback = function(){ if(!self.called){ fn(); self.called = true; } }; function hand(){ elem.on(transitionEnd,function(){ //elem.unbind(transitionEnd,arguments.callee); fncallback(); }); } setTimeout(hand,duration); }, addAnimEvent:function(elem,name,fn){ elem.on(animEvent[name],fn); }, removeAnimEvent:function(elem,name,fn){ elem.unbind(animEvent[name],fn); }, setStyleAttribute:function(elem,val){ if(Object.prototype.toString.call(val) === "[object Object]"){ for(var name in val){ if(/^transition|animation|transform/.test(name)){ var styleName=name.charAt(0).toUpperCase() + name.substr(1); elem.css(vendorPrefix+styleName,val[name]); }else{ elem.css(name,val[name]); } } } } }; })(),

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持查字典教程网。

【JavaScript探测CSS动画是否已经完成的方法】相关文章:

javascript搜索框效果实现方法

javascript常用方法总结

JavaScript里实用的原生API汇总

Javascript中prototype属性实现给内置对象添加新的方法

JavaScript检查子字符串是否在字符串中的方法

javascript检测两个数组是否相似

JS显示日历和天气的方法

JavaScript容易犯错的九个陷阱

JS动态增删表格行的方法

JavaScript中的small()方法使用详解

精品推荐
分类导航