不啰嗦上代码:
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检测浏览器cookie是否已经启动的方法,包括了JavaScript检测浏览器cookie是否已经启动的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript检测浏览器cookie是否已经启动的方法。分享给大家供大家参考。具体分析如下: JavaScript检测浏览器cookie是否已经启动,代码稍显复杂,通过写入一个测试cookie判断
问题内容: 我正在使用AngularJS,并希望在动画制作完成后得到通知。我知道可以使用像这样的javascript定义的动画来完成此操作,但是我很好奇我是否可以不用javascript来做到这一点。 问题: 是否可以使用角度 ng-enter 和 ng-leave css- transitions并指定完成的回调?我猜该事件已被触发,因此应该有一种方法可以执行此操作。 我有这个: HTML: C
问题内容: 在css3动画的情况下,有什么方法可以实现回调函数?如果使用Javascript动画,则可能会在CSS3中找到实现它的方法,但找不到任何方法。 我可以看到的一种方法是在动画持续时间之后执行回调,但是并不能确保始终在动画结束后立即调用它。这将取决于浏览器UI队列。我想要一个更强大的方法。有什么线索吗? 问题答案: 就在这里。回调是一个事件,因此您必须添加事件侦听器才能捕获它。这是jQue
本文向大家介绍JavaScript判断图片是否已经加载完毕的方法汇总,包括了JavaScript判断图片是否已经加载完毕的方法汇总的使用技巧和注意事项,需要的朋友参考一下 在网上有很多关于判断图片是否已经加载完毕的文章,但是有的浏览器并不适合,下面小编给大家分享一些有关JavaScript判断图片是否已经加载完毕方法汇总,具体内容如下所示: 一.onload事件 通过监听图片的onload事件,可
所以我想知道,我想看看一个表是否已经被懒/急加载了,而没有在我检查时实际加载它。例如: 所以当我设置($this)时-
与不同,没有简单的方法来设置空视图,因此必须手动管理它,在适配器的项计数为0的情况下使空视图可见。 为了实现这一点,首先,我尝试在修改下垫结构(在我的示例中为)后立即调用空视图逻辑,例如: 它做了这件事,但有一个缺点:当最后一个元素正在被移除时,空视图出现在移除动画完成之前,在移除之后立即出现。所以我决定等到动画结束再更新UI。 令我惊讶的是,我找不到一个好的方法来收听RecycerView中的动