GSAP (GreenSock Animation Platform) предоставляет возможность создавать сложные анимации с точным управлением временными функциями. Одним из мощнейших инструментов является CustomEase, позволяющий определять пользовательские кривые ускорения и замедлений через синтаксис SVG path.
CustomEase используется для создания кастомных кривых
скорости в анимациях GSAP. Он строится на основе кривой
Безье, где координаты x соответствуют времени
анимации (от 0 до 1), а y – прогрессу анимации (от 0 до
1).
gsap.to(".element", {
duration: 2,
x: 300,
ease: CustomEase.create("custom", "M0,0 C0.25,0.1 0.25,1 1,1")
});
В этом примере M0,0 C0.25,0.1 0.25,1 1,1 — это SVG path,
описывающий кривую Безье для анимации.
M x,y – команда “move to”, определяет стартовую
точку кривой. Для CustomEase всегда M0,0.
C x1,y1 x2,y2 x,y – кубическая кривая Безье.
x1,y1 – первая контрольная точкаx2,y2 – вторая контрольная точкаx,y – конечная точка сегментаКаждая кривая начинается с M0,0 и заканчивается
1,1. Можно добавлять несколько сегментов для создания более
сложных кривых:
"M0,0 C0.1,0.7 0.2,0.3 0.3,0.5 C0.4,0.6 0.6,0.4 1,1"
Для визуальной настройки часто используют инструменты типа
Cubic Bezier или онлайн редакторы CustomEase. Основной принцип:
кривую рисуют от (0,0) до (1,1), затем
экспортируют путь SVG.
[0,1].[0,1], где 0 –
старт, 1 – финал анимации.Если значения выходят за пределы диапазона, анимация может вести себя непредсказуемо.
CustomEase поддерживает несколько сегментов кривой, что позволяет создавать эффекты «ускорение–замедление–отскок» или «качание».
Пример сложной кривой:
CustomEase.create("swing", "M0,0 C0.2,0.5 0.4,0.2 0.5,0.5 C0.6,0.8 0.8,0.5 1,1");
CustomEase интегрируется с любыми анимациями GSAP, включая
to, from, fromTo и
timeline.
gsap.timeline()
.to(".box", { x: 200, ease: "custom" })
.to(".box", { y: 150, ease: "swing" });
Использование CustomEase с таймлайнами позволяет задавать индивидуальные кривые для каждого свойства, обеспечивая динамику и реалистичность движения.
[0,1].Синтаксис SVG path в CustomEase — это мощный инструмент для профессиональных анимаций, позволяющий создавать уникальные и точные временные функции без ограничения стандартными easing-функциями.