jquery191源码分析系列(十五)之动画处理_jquery

jquery191源码分析系列(十五)之动画处理_jquery

ID:30769435

大小:159.22 KB

页数:10页

时间:2019-01-03

jquery191源码分析系列(十五)之动画处理_jquery_第1页
jquery191源码分析系列(十五)之动画处理_jquery_第2页
jquery191源码分析系列(十五)之动画处理_jquery_第3页
jquery191源码分析系列(十五)之动画处理_jquery_第4页
jquery191源码分析系列(十五)之动画处理_jquery_第5页
资源描述:

《jquery191源码分析系列(十五)之动画处理_jquery》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、jQuery1.9.1源码分析系列(十五)之动画处理首先需要有队列(queue)的基本知识。见上一章。相关教程:jQuery卜•的动画处理总结:http://www.jb51.net/article/42000.htmjQuery1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween:http://www.jb51.net/article/75821.htma.动画入口jQuery.fn.animate函数执彳亍流程详解先根据参数调用jQuery.speed获取动画相关参数,得到一个类似如下的对象;并且生成动UUi执行函数doAnimationoptail={complet

2、e:fnction(){...},//动画执行完成的回调duration:400,//动画执行时长easing:"swing",//动厕效果queue:"fx",//动画队列old:false/fnction(){・・・},}varempty二jQuery.isEmptyObject(prop),optal1二jQuery.speed(speed,easing,callback),doAnimation二function(){〃在特征的副本上操作,保证每个特征效果不会被丢失varanim=Animation(this,jQuery.extend({},prop),optail);d

3、oAnimation.finish二function(){anim.stop(true);};//空动画或完成需要立马解决if(empty

4、

5、jQuery._data(this,"finish")){anim.stop(true);}};doAnimation・finish=doAnimation;没有动画正在执行则马上执行动画,否则将动画压入动画队列等待执行//没有动画在执行则马上执行动画,否则将动画压入动画队列等待执行returnempty

6、

7、optail.queue二二二false?this.each(doAnimation):this.queue(optail,queue,

8、doAnimation);可以看出,真正执行动画的地方是Animation(this,jQuery.extend({},prop),optail)函数b.jQuery内部函数Animation详解Animation(clem,properties,options)•propertics是要进行动画的css特征,options是动画相关选项{complete:function(){•••},duration:400,easing:undefined,old:false,queue:。首先,初始化一个延时对象,这个延时对象用来处理动画队列。deferred二jQucr)^.Deferr

9、ed().always(function(){//don'tmatcheleminthe:animatedselectordeletetick,elem;}),然后,生成一个每一个时间点(相邻两个时间点的事件间隔默认为13毫秒)上都会执行的函数tick,这个tick函数会保存在jQuery.timers中,然后每次执行jQuery.fx.tick的时候会取出来执行。tick二function(){if(stopped){returnfalse;}varcurrentTime=fxNow

10、

11、createFxNowO,remaining二Math,max(0,animation.sta

12、rtTime+animation,duration-currentTime),//archaiccrashbugwon'tallowustouse1-(0.5

13、

14、0)(#12497)temp=remaining/animation,duration

15、

16、0,percent=1-temp,index=0,length=animation.tweens.length;//执行动画效果for(;index

17、ion,percent,remaining]);if(percent<1&&length){returnrcmaining;}else{〃动画执行完毕,执行所有延时队列中的函数(包描清除动画相关的数据)deferred,resolveWith(elem,[animation]);returnfalse;我们看到jQuery对动画进度的处理:remaining=Math,max(0,animation.startTime+animation.duration-currc

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。