Jquery源码分析---FX分析
2010-09-14 13:39:01 来源:WEB开发网Animate通过传入的参数对于jquery对象中的每个元素的每个指示的属性都进行时间上渐变的改变。下面就分析其中的代码。
jQuery.speed
在①是就通过jquery.speed来进行参数的统一整理。
// 主要用于辅助性的工作
speed: function(speed, easing, fn) {
var opt = speed && speed.constructor == Object ? speed : {
// coplete是至多三个参数的最后一个。看看是否传入动画完成回调的函数
complete: fn ||!fn && easing ||jQuery.isFunction( speed ) && speed,
duration: speed,// 持继的时间,动画运行的时间。
//找到动画中属性随时间渐变的的算法。
easing:fn&&easing || easing && easing.constructor != Function && easing
};
//计算出正确的duration,它支持fast,slow这样已经定义的常量
opt.duration = (opt.duration &&
(opt.duration.constructor == Number?
opt.duration :
jQuery.fx.speeds[opt.duration]))||jQuery.fx.speeds._default;
// Queueing
opt.old = opt.complete;
//这里是把complete形成了包裹,看看参数中是否指定队列操作,
//如果先出列,再执行complete
opt.complete = function(){
//可能通过参数指定queue,this指向是当前的dom元素。
if ( opt.queue !== false ) jQuery(this).dequeue();//出queue
if (jQuery.isFunction( opt.old )) opt.old.call( this );
};
return opt;
},
jquery.speed是对参数进行管理的操作函数。它首先看看speed是不是紧缩型的参数如{ complete:xx, easing:xx, duration:xx}。如果不是,就根据传入的参数进行判断,组成紧缩型的对象参数。
更多精彩
赞助商链接