Конкретный пример,
Предположим, что наше начальное значение равно 1000 , и мы хотим достичь 400 в 3s :
var initialValue = 1000,
destinationValue = 400,
amountOfChange = destinationValue - initialValue, // = -600
duration = 3,
elapsed;
Давайте перейдем от 0 до 3 с:
elapsed = 0
$.easing.easeInQuad(null, elapsed, initialValue, amountOfChange, duration)
//> 1000
elapsed = 1
$.easing.easeInQuad(null, elapsed, initialValue, amountOfChange, duration)
//> 933.3333333333334
elapsed = 2
$.easing.easeInQuad(null, elapsed, initialValue, amountOfChange, duration)
//> 733.3333333333334
elapsed = 3
$.easing.easeInQuad(null, elapsed, initialValue, amountOfChange, duration)
//> 400
Итак, по сравнению с кратким изложением:
$.easing.easeInQuad = function (x, t, b, c, d) {...}
мы можем вывести:
x t b c d
| | | | |
null elapsed initialValue amountOfChange duration
NB1: Одна важная вещь состоит в том, что elapsed
(t
) и duration
(d
) должны быть выражены в одной и той же единице, например: здесь «секунды» для нас, но могут быть «мс» илибез разницы.Это также верно для initialValue
(b
) и amountOfChange
(c
), поэтому для суммирования:
x t b c d
| | | | |
null elapsed initialValue amountOfChange duration
^ ^ ^ ^
+----------|----=unit=----|------------+
+----=unit=----+
NB2: Как @ DamonJW ,Я не знаю, почему x
здесь.Он не появляется в уравнениях Пеннера и, по-видимому, не используется в результате: пусть всегда устанавливает его в null