У меня есть веб-сайт с боковой прокруткой под управлением 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, функция замедления завершена, но мне действительно нужно, чтобы функция возвращалась, когда скорость движения ниже некоторого порога, а не ожидала, когда время истечет. Но где рассчитывается скорость? (с?)
Любая помощь, которую вы можете оказать в расшифровке, была бы великолепна!