// t: current time, b: beginning value, c: change in value, d: duration
function easeInQuad(t, b, c, d) {
return c*(t/=d)*t + b;
}
function easeOutElastic(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;
}
easeInQuad(100, 20, 0, 1000) // 20
easeInQuad(500, 20, 0, 1000) // 20
easeOutElastic(0, 20, 0, 1000) // 20
easeOutElastic(500, 20, 0, 1000) // NaN
easeOutElastic(1000, 20, 0, 1000) // 20
如果價值變動爲0,easeInQuad
總是返回20,easeOutElastic
也返回錯誤值。在JavaScript緩解作用 - 在設定值更改爲0
值的變化不能爲0? jQuery如何處理animate({top: 0})
,設置0到0.0001?
我誤解了什麼價值意義變化。如果我想最終值是0
,參數c
應該是-20
您是否需要其他任何東西,或者我們能否接受我的答案並將其關閉? – ductiletoaster