GSAP 3 (GreenSock Animation Platform) значительно упрощает создание
анимаций в JavaScript. Основной объект для работы — это
gsap, предоставляющий методы to,
from, fromTo и set.
Метод gsap.to позволяет анимировать
свойства объекта к заданным значениям:
gsap.to(".box", {
duration: 2,
x: 300,
rotation: 45,
ease: "power2.inOut"
});
Метод gsap.from задаёт начальные
значения, от которых происходит анимация:
gsap.from(".box", {
duration: 2,
opacity: 0,
y: -100
});
Метод gsap.fromTo комбинирует обе
концепции, задавая начальные и конечные значения:
gsap.fromTo(".box",
{ x: 0, opacity: 0 },
{ x: 300, opacity: 1, duration: 2 }
);
Метод gsap.set позволяет мгновенно установить свойства
без анимации:
gsap.set(".box", { x: 100, y: 50 });
GSAP 3 ввёл объект Timeline, который позволяет
объединять несколько анимаций в цепочку. Основные преимущества:
управление порядком, синхронизация и повторение.
const tl = gsap.timeline({ repeat: 2, yoyo: true });
tl.to(".box", { x: 100, duration: 1 })
.to(".box", { rotation: 360, duration: 1 }, "+=0.5")
.to(".box", { scale: 1.5, duration: 1 });
repeat — количество повторов.yoyo — эффект обратного воспроизведения после
завершения цикла."+=0.5" задаёт задержку перед запуском
следующей анимации.GSAP 3 объединил несколько систем easing в единый набор. Теперь можно
использовать предустановленные функции: power1,
power2, power3, power4,
elastic, bounce, rough,
slow.
gsap.to(".box", { x: 300, duration: 2, ease: "bounce.out" });
Ключевое отличие — easings теперь более естественно интерполируют значения, позволяя создавать плавные и реалистичные движения без ручной настройки кривых Безье.
GSAP 3 напрямую работает с CSS-переменными, SVG-атрибутами и сложными
трансформациями. Для трансформаций достаточно указать свойства, такие
как x, y, scale,
rotation, skew.
gsap.to(".circle", {
x: 200,
scale: 2,
rotation: 180,
transformOrigin: "50% 50%",
duration: 2
});
Работа с SVG теперь особенно удобна: атрибуты вроде
stroke-dasharray и stroke-dashoffset можно
анимировать напрямую:
gsap.from(".path", { strokeDasharray: "1000", strokeDashoffset: "1000", duration: 2 });
GSAP 3 предоставляет обширные возможности для управления анимациями
после их создания. Методы pause, resume,
reverse, restart, seek,
progress позволяют гибко изменять ход анимации.
const anim = gsap.to(".box", { x: 400, duration: 4, paused: true });
anim.play(); // Запуск
anim.pause(); // Пауза
anim.reverse(); // Обратное воспроизведение
anim.seek(2); // Перейти к позиции 2 секунд
anim.progress(0.5); // Установить прогресс 50%
GSAP 3 позволяет использовать модификаторы, которые динамически изменяют значения свойств на основе текущих параметров.
gsap.to(".box", {
x: 300,
duration: 2,
modifiers: {
x: function(x) {
return parseFloat(x) + 50; // смещение на 50px от текущего положения
}
}
});
Также доступны кастомные свойства для расширения возможностей анимаций и создания сложных эффектов без изменения исходного кода.
GSAP 3 активно развивает инструменты для анимации на основе скролла
через плагин ScrollTrigger. Он позволяет запускать анимации
при достижении элементов в области видимости, синхронизировать с
прокруткой и создавать эффект параллакса.
gsap.to(".section", {
scrollTrigger: {
trigger: ".section",
start: "top 80%",
end: "bottom 20%",
scrub: true
},
x: 500,
rotation: 360
});
start и end задают диапазон скролла.scrub синхронизирует анимацию с движением
страницы.GSAP 3 автоматически использует GPU-ускорение для трансформаций
(x, y, rotation,
scale) и минимизирует перерасчёт стилей. Это делает
анимации плавными даже на слабых устройствах.
Свойства, влияющие на производительность:
transform вместо
top/left.will-change: transform для сложных
элементов.