jQuery的缓动功能如何工作?举个例子:
easeInQuad = function (x, t, b, c, d) {
return c*(t/=d)*t + b;
};
这是如何运作的?每个参数都包含什么?如何为动画实现一些愚蠢的缓动?
另外,我如何将缓动模式附加到jQuery,是否将其加载到$ .easing中呢?
最佳答案
根据jQuery 1.6.2的源代码,缓动函数的含义如下。在动画期间的各个时间点调用该函数。在瞬间被称为
缓动函数应返回[0,1]范围内的浮点数,将其称为
r
。 jQuery然后计算x=start+r*(end-start)
,其中start
和end
是在对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/