jQuery的缓动功能如何工作?举个例子:

easeInQuad = function (x, t, b, c, d) {
    return c*(t/=d)*t + b;
};

这是如何运作的?每个参数都包含什么?如何为动画实现一些愚蠢的缓动?

另外,我如何将缓动模式附加到jQuery,是否将其加载到$ .easing中呢?

最佳答案

根据jQuery 1.6.2的源代码,缓动函数的含义如下。在动画期间的各个时间点调用该函数。在瞬间被称为

  • x和t都说相对于动画开始的现在时间。 x表示为[0,1]范围内的浮点数,其中0是开始,1是结束。 t表示自动画开始以来的毫秒数。
  • d是动画调用中指定的动画持续时间,以毫秒为单位。
  • b = 0和c = 1。

  • 缓动函数应返回[0,1]范围内的浮点数,将其称为r。 jQuery然后计算x=start+r*(end-start),其中startend是在对animate的调用中指定的属性的开始和结束值,并将属性值设置为x

    据我所知,jQuery不能直接控制何时调用动画步函数,它只能让您说“如果我在时间t被调用,那么我应该遍及整个动画。”因此,例如,您不能要求在对象移动得更快时更频繁地重绘对象。另外,我不知道为什么其他人说b是起始值而c是变化— jQuery源代码不是这样说的。

    例如,如果您想定义自己的缓动函数以与easyInQuad相同,
    $.extend(jQuery.easing,{myfunc:function(x,t,b,c,d) { return x*x; }})
    
    $('#marker').animate({left:'800px'},'slow','myfunc');
    

    关于javascript - jQuery缓动函数—变量的理解,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5916058/

    10-11 08:15