Jquery easing

Доброго вам дня!
Сьогодні постараюся на прикладі показати як написати свою функцію пом'якшення для jQuery. Кому цікаво - під кат.

Думаю, багато хто з вас знайомі з таким поняттям що пом'якшення або ослаблення (easing).

Для тих, хто не в курсі

В контексті jQuery, а зокрема анімації, easing - це функція визначає поведінку вашої анімації у часі, тобто залежність значення від часу (насправді, при необхідності, ще від набору параметрів).
За замовчуванням в jQeury є 2 функції пом'якшення: normal і swing.
Для розширення «асортименту» можна скористатися плагіном jQuery Easing Plugin (Шпаргалка). Для більшості випадків цього достатньо. Для інших випадків - Новомосковськ далі.

Функція має вигляд:

де x - поточне значення прогресу анімації (від 0 до 1)
t - поточний час,
b - початкове значення x (зазвичай 0),
c - кінцеве значення x (зазвичай 1),
d - загальна протяжність анімації.
Примітка: в jQuery Easing Plugin мені зустрівся ще параметр s, але мені так і не вдалося дізнатися, що це

Наприклад, нам необхідно написати функцію пом'якшення, математична функція якої матиме приблизний вигляд:


. яка складається з 7 функцій:
3 функції y = x,
3 функції y = -x,
1 функція y = sin (x).
Примітка: для останньої функції для прикладу використовувалася інша функція пом'якшення

Для додавання функції пом'якшення напишемо таку конструкцію: