GSAP (GreenSock Animation Platform) является одной из наиболее мощных и гибких библиотек для создания анимации на JavaScript. Основой работы с GSAP является правильная регистрация плагинов и инициализация анимаций, что позволяет использовать расширенные возможности библиотеки.
Для активации некоторых возможностей GSAP необходимо зарегистрировать
соответствующие плагины. Регистрация выполняется методом
gsap.registerPlugin().
Пример использования:
import { gsap } from "gsap";
import { ScrollTrigger } from "gsap/ScrollTrigger";
gsap.registerPlugin(ScrollTrigger);
Ключевые моменты:
ScrollTrigger,
Draggable, MotionPathPlugin, не будут
работать.gsap.registerPlugin(ScrollTrigger, Draggable, MotionPathPlugin);
После регистрации плагинов начинается работа с анимацией. Основные
методы GSAP для этого: gsap.to(), gsap.from(),
gsap.fromTo().
gsap.to() – анимация от текущего
состояния к указанным свойствам:gsap.to(".box", {
x: 300,
duration: 2,
ease: "power2.inOut"
});
gsap.from() – анимация от заданных
свойств к текущим:gsap.from(".box", {
opacity: 0,
y: -100,
duration: 1.5
});
gsap.fromTo() – комбинация,
позволяющая задать и начальное, и конечное состояние:gsap.fromTo(".box",
{ scale: 0 },
{ scale: 1, duration: 1, ease: "bounce.out" }
);
Ключевые моменты:
duration указывает длительность анимации в
секундах.ease определяет тип интерполяции (ускорение,
замедление и т.д.).Для сложных последовательных анимаций используется объект
gsap.timeline(). Таймлайн позволяет объединять несколько
анимаций в одну цепочку и управлять синхронизацией.
Пример базовой инициализации:
const tl = gsap.timeline({ defaults: { duration: 1, ease: "power1.out" } });
tl.to(".box1", { x: 200 })
.to(".box2", { y: 150 }, "-=0.5") // запускается за 0.5 сек до конца предыдущей
.from(".box3", { opacity: 0 });
Ключевые моменты:
defaults позволяет задавать значения по умолчанию
для всех анимаций таймлайна."<", ">",
"-=0.5") управляют синхронизацией и перекрытием
анимаций.GSAP предоставляет глобальные методы и настройки, влияющие на поведение всех анимаций:
gsap.defaults({ duration: 2, ease: "power2.inOut" });
При использовании GSAP в современных проектах, построенных на сборщиках модулей (Webpack, Vite, Parcel), рекомендуется импортировать только необходимые модули:
import { gsap } from "gsap";
import { ScrollTrigger } from "gsap/ScrollTrigger";
tree-shaking.Для прямого подключения через <script> достаточно
использовать CDN:
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/gsap.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/gsap@3/dist/ScrollTrigger.min.js"></script>
После подключения через CDN регистрация плагинов производится точно так же, как и при модульной системе.
DOMContentLoaded
или window.onload) для работы с реальными элементами.document.addEventListener("DOMContentLoaded", () => {
gsap.to(".box", { x: 100, duration: 1 });
});
gsap.utils.toArray() для массовой инициализации
анимаций.gsap.utils.toArray(".animated").forEach(el => {
gsap.from(el, { opacity: 0, y: 50, duration: 1 });
});
timeline для последовательных анимаций
вместо цепочек отдельных gsap.to().defaults для сокращения повторяющихся
настроек.Эти принципы создают основу для эффективной и безопасной работы с GSAP и позволяют сразу использовать все возможности библиотеки без ошибок и конфликтов.