手机
当前位置:查字典教程网 >编程开发 >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动画是否已经完成的方法】相关文章:

JS显示日历和天气的方法

JavaScript实现弹出模态窗体并接受传值的方法

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

Javascript实现飞动广告效果的方法

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

JavaScript容易犯错的九个陷阱

JavaScript里实用的原生API汇总

Javascript生成全局唯一标识符(GUID,UUID)的方法

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

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

精品推荐
分类导航