GSAP (GreenSock Animation Platform) предоставляет мощный и гибкий механизм для управления временными характеристиками анимации с помощью easing-функций. Эти функции позволяют изменять скорость анимации в течение её выполнения, создавая более естественные и выразительные движения элементов.
GSAP включает несколько категорий easing, каждая из которых отвечает за определённый тип движения:
Power easings
Power0, Power1, Power2,
Power3, Power4 Эти функции позволяют
контролировать экспоненциальное ускорение или замедление. Чем выше
цифра, тем более выражено изменение скорости:gsap.to(".box", { duration: 2, x: 300, ease: "power2.inOut" });
.in — ускорение в начале анимации.out — замедление в конце.inOut — комбинация ускорения в начале и замедления в
концеElastic (эластичные)
gsap.to(".ball", { duration: 2, y: 200, ease: "elastic.out(1, 0.3)" });
Параметры:
Bounce (отскок)
gsap.to(".ball", { duration: 2, y: 200, ease: "bounce.out" });Back (возврат)
gsap.to(".button", { duration: 1, scale: 1.5, ease: "back.out(1.7)" });
Параметр задаёт величину «отката» перед основной анимацией.
GSAP позволяет создавать кастомные easing-функции
через класс CustomEase или функцию
gsap.parseEase. Это полезно, когда стандартных кривых
недостаточно:
gsap.to(".box", {
duration: 2,
x: 300,
ease: gsap.parseEase("M0,0 C0.126,0.382 0.22,1 1,1")
});
M0,0 — начальная точка, C — кубическая
Безье-кривая, 1,1 — конечная точка.Также можно использовать функции обратного вызова, которые возвращают динамический easing:
gsap.to(".box", {
duration: 2,
x: 300,
ease: function(progress) {
return Math.sin(progress * Math.PI / 2);
}
});
progress изменяется от 0 до 1Easing можно применять не только к отдельным анимациям, но и ко всей
последовательности gsap.timeline:
let tl = gsap.timeline({ defaults: { duration: 1, ease: "power1.inOut" } });
tl.to(".box1", { x: 200 })
.to(".box2", { y: 100 })
.to(".box3", { rotation: 360 });
defaults задаёт базовый easing для
всех шагов анимацииEasing определяет ритм и характер движения, напрямую влияя на UX. Неправильный выбор функции может сделать интерфейс:
Правильное применение easing позволяет создавать интерфейсы с ощущением физической логики и плавности.