我有一个在 jQuery 控制下的横向滚动网站,其中有几个水平相隔数千像素的页面。我正在使用 easeOutElastic 功能,但动画发生得很快,需要抑制弹性反弹。如果我增加持续时间参数,动画会变慢,但反弹也会变慢。似乎持续时间控制着整个动画。
我需要做的是分别控制移动的速度和弹性的松紧度。我一直在插件中摆弄我自己的 easeOutElastic 函数副本,但我似乎无法做到正确,不知道所有参数是什么:
easeOutElastic: function (x, t, b, c, d) {
var s=1.70158;
var p=0;
var a=c;
if (t==0) return b;
if ((t/=d)==1) return b+c;
if (!p) p=d*.3;
if (a < Math.abs(c)) {
a=c;
var s=p/4;
}else{
var s = p/(2*Math.PI) * Math.asin (c/a);
}
return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
}
谁能告诉我参数:x,t,b,c,d代表什么?
我假设(跟踪函数):
t = time // passed from the duration
d = distance // calculated from the current and move to positions passed from the css
看起来当 t == 0 时缓动函数完成,但我真正需要的是函数在运动速度低于某个阈值时返回,而不是等待时间到期。但是速度在哪里计算?(秒?)
您可以提供任何帮助来破译这将是很棒的!