GSAP (GreenSock Animation Platform) предоставляет мощные инструменты для управления анимацией в JavaScript, обеспечивая гибкость и высокую производительность. Понимание ключевых параметров duration, ease и absolute позволяет создавать динамичные и плавные анимации с точным контролем времени и эффекта.
durationduration задаёт длительность анимации в
секундах. Это основной параметр для контроля скорости анимации. Если не
указано значение duration, GSAP использует значение по умолчанию (обычно
0,5–0,75 секунды в зависимости от версии).
Примеры использования:
gsap.to(".box", { x: 300, duration: 2 });
duration может быть как числом, так и функцией,
возвращающей число. Это полезно для динамического расчёта времени
анимации на основе условий страницы или состояния элементов:
gsap.to(".box", {
x: 500,
duration: () => Math.random() * 3 + 1 // случайная длительность от 1 до 4 секунд
});
Ключевые моменты:
easeease управляет кривой ускорения
анимации. Этот параметр определяет, как изменяется скорость движения
объекта с течением времени, создавая ощущение инерции, замедления или
ускорения.
Примеры:
gsap.to(".box", { y: 200, duration: 1.5, ease: "power2.inOut" });
ease,
включая linear, elastic,
bounce, back.Использование кастомных кривых:
gsap.to(".box", {
rotation: 360,
duration: 2,
ease: "cubic-bezier(0.68, -0.55, 0.27, 1.55)"
});
Ключевые моменты:
ease не влияет на конечное положение, только на
скорость и плавность движения.absolute в
таймлайнахabsolute используется в контексте
Timeline и позволяет задавать точное время появления
анимации относительно начала или других анимаций. Это важно для
синхронизации сложных последовательностей.
Пример с Timeline:
let tl = gsap.timeline();
tl.to(".box1", { x: 100, duration: 1 })
.to(".box2", { y: 150, duration: 1 }, 0) // абсолютное время начала = 0
.to(".box3", { opacity: 1, duration: 1 }, "<"); // относительное смещение
Пример с числовым временем:
tl.to(".box4", { x: 200, duration: 2 }, 1.5); // начинается через 1.5 секунды от старта таймлайна
Ключевые моменты:
<, >).duration, ease и absoluteЭффективное использование этих параметров создаёт контролируемую, плавную и динамичную анимацию. Пример комплексной анимации:
let tl = gsap.timeline();
tl.to(".box1", { x: 100, duration: 2, ease: "power2.inOut" })
.to(".box2", { y: 150, duration: 1.5, ease: "bounce.out" }, 0.5) // абсолютное время 0.5 сек
.to(".box3", { scale: 1.5, duration: 1, ease: "elastic.out(1, 0.3)" }, ">0.2"); // относительное смещение
Использование всех трёх параметров совместно позволяет создавать последовательности с точным временем, реалистичной физикой движения и визуальной выразительностью.
duration и
ease.absolute в Timeline.ease значительно улучшает
восприятие движения.duration и точного
absolute позволяет адаптировать анимации под разные условия
экрана или событий пользователя.Эти параметры являются фундаментальными строительными блоками любой профессиональной анимации в GSAP, обеспечивая контроль над временем, плавностью и последовательностью действий.