GSAP (GreenSock Animation Platform) предоставляет гибкие возможности для управления анимацией элементов на веб-странице. Одним из ключевых аспектов является управление направлением отрисовки анимации, что особенно важно при сложных последовательностях, повторениях и обратных воспроизведениях.
В GSAP основным инструментом управления временем и направлением
является объект Tween или Timeline.
timeScale по умолчанию
равно 1, что соответствует нормальной скорости.reverse() или установка
отрицательного значения timeScale. Например:gsap.to(".box", { x: 400, duration: 2 }).reverse();
// Анимация будет проигрываться в обратном направлении
let tween = gsap.to(".circle", { x: 300, duration: 3 });
tween.pause(); // приостановка
tween.resume(); // возобновление
GSAP поддерживает свойства repeat и yoyo,
которые напрямую влияют на направление отрисовки.
gsap.to(".square", { x: 500, duration: 2, repeat: 3 });
gsap.to(".square", { x: 500, duration: 2, repeat: 2, yoyo: true });
В данном примере элемент движется вперед, затем назад, затем снова
вперед. yoyo фактически переключает направление
автоматически, что позволяет создавать плавные и естественные движения
без ручного управления обратным воспроизведением.
Методы GSAP позволяют динамически изменять направление анимации:
tween.play() — запускает анимацию в текущем
направлении.tween.reverse() — меняет направление
воспроизведения.tween.reversed() — возвращает текущее состояние
направления (true, если воспроизведение назад).tween.timeScale(value) — устанавливает скорость и
направление анимации: отрицательное значение запускает обратное
воспроизведение.let tween = gsap.to(".box", { x: 200, duration: 2 });
tween.timeScale(-1); // воспроизведение в обратном направлении с нормальной скоростью
Timeline позволяет управлять серией анимаций с разными
направлениями. В GSAP это один из самых мощных инструментов, поскольку
можно комбинировать forward и reverse, а также применять
yoyo к целому таймлайну:
let tl = gsap.timeline({ repeat: 1, yoyo: true });
tl.to(".box", { x: 300, duration: 2 })
.to(".circle", { y: 150, duration: 1 });
Здесь Timeline проигрывает последовательность вперед,
затем в обратном направлении благодаря yoyo.
Методы управления направлением в Timeline аналогичны Tween:
tl.play() — воспроизведение впередtl.reverse() — воспроизведение назадtl.timeScale(-1) — обращение направления всей
последовательностиGSAP позволяет управлять направлением анимации и синхронизацией через delay и stagger:
gsap.to(".item", {
x: 200,
duration: 1,
stagger: 0.2,
repeat: 1,
yoyo: true
});
stagger задаёт последовательное смещение запуска
анимаций элементовyoyo и repeat вместе меняют направление
каждой анимации после завершения циклаtimeScale на отрицательное значение весь
эффект сдвига и повторов проигрывается в обратном порядке.repeat, yoyo,
timeScale и методов play/reverse для
корректного направления воспроизведения.Направление отрисовки в GSAP — гибкий и мощный инструмент, позволяющий управлять сложными анимациями, повторениями и интерактивными эффектами, минимизируя дублирование кода и повышая плавность движений.