WEB开发网
开发学院网页设计JavaScript Jquery源码分析---FX分析 阅读

Jquery源码分析---FX分析

 2010-09-14 13:39:01 来源:WEB开发网   
核心提示: Step中第一部分是完成时的扫尾工作,恢复动画时改变的属性和运行complete的回调函数,Jquery源码分析---FX分析(10),第二部分就是计算this.now的值之后显示出来,目前jquery提供了两种算法来计算从时间间隔比率转换成位置上的比率,即动画结束进行扫尾工作,这里的jQ

Step中第一部分是完成时的扫尾工作,恢复动画时改变的属性和运行complete的回调函数。第二部分就是计算this.now的值之后显示出来。目前jquery提供了两种算法来计算从时间间隔比率转换成位置上的比率。

  easing: {
    linear: function( p, n, firstNum, diff ) {
      return firstNum + diff * p;
    },
    swing: function( p, n, firstNum, diff ) {
      return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;
    }
},

这就是它的算法。对于linear的形式,Jquery采用了1:1的关系来计算的。

Stop

一个动画,有的时间可能会出现在没有运行完成就中断。Stop就是对这个进行操作的。

stop: function(clearQueue, gotoEnd){
  var timers = jQuery.timers;
  if (clearQueue)  this.queue([]);// 清除
    this.each(function(){
    //倒序是为了能把在loop过程加入timers的当前元素的属性的动画step也给删除。
      for ( var i = timers.length - 1; i >= 0; i-- )
       if ( timers[i].elem == this ) {
         if (gotoEnd) timers[i](true); // 强迫动画结束 
          timers.splice(i, 1);
       }
    });
    // start the next in the queue if the last step wasn't forced
    if (!gotoEnd)   this.dequeue();
  
    return this;
  }

在stop中,我们可以看出step(force)中的参数的作用。这个强迫动画到最后一步,即动画结束进行扫尾工作。这里的jQuery.timers是公共的集合。在custom中的setInterval就是对它进行操作的。

文章来源:http://jljlpch.javaeye.com/category/37744

上一页  5 6 7 8 9 10 

Tags:Jquery 源码 分析

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接