В ScrollMagic ease используется для задания плавности
анимаций при привязке их к прокрутке страницы. Он определяет скорость
изменения значения анимируемого свойства во времени, делая движение
более естественным и визуально приятным. В сочетании с
библиотекой анимаций, например, GSAP, ease управляет кривой
перехода между ключевыми состояниями объекта.
В ScrollMagic напрямую ease чаще всего применяется через
Tween-библиотеки (GSAP, Velocity). Рассмотрим основные
категории easing:
Linear (линейное) Линейное изменение значения без ускорений и замедлений.
var tween = gsap.to(".box", {duration: 2, x: 500, ease: "linear"});
Все движение равномерно, подходит для простых, механических анимаций.
Power (power1, power2, power3, power4) Позволяют задать различную степень ускорения и замедления:
power1 — мягкое ускорение/замедлениеpower2 — среднееpower3 — заметноеpower4 — резкое, интенсивноеgsap.to(".box", {duration: 2, y: 300, ease: "power2.inOut"});
Суффиксы .in, .out, .inOut
определяют направление easing:
in — ускорение в началеout — замедление в концеinOut — ускорение в начале и замедление в концеBounce и Elastic Для эффектов отскока или пружины:
gsap.to(".box", {duration: 2, y: 400, ease: "bounce.out"});
gsap.to(".box", {duration: 2, y: 400, ease: "elastic.out(1, 0.3)"});
bounce создает эффект подбрасыванияelastic имитирует пружинящий объект, можно настроить
силу и колебанияЧтобы применить ease в ScrollMagic, создается сцена
(Scene) и связывается с tween:
var controller = new ScrollMagic.Controller();
var tween = gsap.to(".box", {duration: 1, x: 400, ease: "power3.inOut"});
var scene = new ScrollMagic.Scene({
triggerElement: ".trigger",
duration: 500
})
.setTween(tween)
.addTo(controller);
В этом примере объект .box будет перемещаться по оси X с
плавностью, определяемой power3.inOut.
Продолжительность сцены (duration) задает
длину скролла, на которой анимация будет происходить, а easing управляет
кривой движения внутри этой продолжительности.
GSAP позволяет создавать кастомные функции easing через
CustomEase или используя стандартные функции, например
cubic-bezier. Это позволяет контролировать скорость
движения точечно:
gsap.to(".box", {duration: 2, x: 300, ease: "cubic-bezier(0.68, -0.55, 0.27, 1.55)"});
Такой подход полезен для создания уникальных анимаций, которые не ограничены стандартными кривыми.
linear, power1)
минимально нагружают рендеринг браузера.elastic, кастомные bezier`) могут
влиять на производительность при большом количестве элементов или сцен
одновременно.pin), easing управляет только tween, а сама прокрутка
остается линейной.timeline GSAP, где для каждого tween можно
задать свой ease.Параметр ease — это инструмент управления
динамикой анимации, который задает характер движения объекта по
оси времени. Правильный выбор easing позволяет создавать
естественные, приятные глазу эффекты, которые делают
страницы интерактивными и динамичными.
Гибкость GSAP в сочетании с ScrollMagic обеспечивает полный контроль над плавностью анимаций, а кастомные кривые дают возможность реализовать уникальные сценарии движения, от линейного перемещения до сложных пружинящих эффектов.