GSAP (GreenSock Animation Platform) предоставляет мощный инструмент
для создания динамических анимаций в веб-приложениях. Основными
эффектами при работе с визуальными элементами являются
масштабирование (scale) и изменение
прозрачности (fade). В GSAP эти эффекты реализуются с
использованием свойств scale, scaleX,
scaleY и opacity.
Свойство scale управляет размером элемента относительно
его исходного состояния. Значение 1 соответствует исходному
размеру, 0.5 уменьшает элемент в два раза, а 2
увеличивает его в два раза.
Пример анимации изменения масштаба:
gsap.to(".box", {
duration: 2,
scale: 1.5,
ease: "power2.inOut"
});
Ключевые моменты:
duration задаёт длительность анимации в секундах.ease управляет плавностью изменения,
power2.inOut обеспечивает естественное ускорение и
замедление.transformOrigin:gsap.to(".box", {
duration: 2,
scale: 1.5,
transformOrigin: "top left"
});
Иногда требуется изменить размер только по одной оси. Для этого
используются scaleX и scaleY.
gsap.to(".box", {
duration: 1.5,
scaleX: 2,
scaleY: 0.5,
ease: "elastic.out(1, 0.3)"
});
Особенности:
scaleX и scaleY можно комбинировать с
scale, при этом индивидуальные оси имеют приоритет.elastic) создают ощущение упругости
и динамики.Свойство opacity управляет прозрачностью элемента.
Значение 0 полностью скрывает элемент, 1
делает его полностью видимым.
Простая анимация появления:
gsap.to(".box", {
duration: 1,
opacity: 1
});
Исчезновение элемента:
gsap.to(".box", {
duration: 1,
opacity: 0
});
Особенности работы с fade:
autoAlpha полезно для одновременного
управления прозрачностью и видимостью элемента:gsap.to(".box", {
duration: 1,
autoAlpha: 0
});
autoAlpha устанавливает opacity и
автоматически скрывает элемент (display: none) при
достижении нуля, что предотвращает кликабельность невидимого
объекта.
Часто анимации выглядят более органично при сочетании масштабирования и изменения прозрачности. Пример анимации всплытия:
gsap.from(".box", {
duration: 1,
scale: 0,
opacity: 0,
ease: "back.out(1.7)"
});
Пояснения:
gsap.from() задаёт начальные значения, от которых
анимация “вырастает” до текущего состояния элемента.back.out создаёт эффект небольшого
отскока при появлении.GSAP позволяет объединять несколько анимаций в Timeline, что упрощает последовательное управление масштабом и прозрачностью.
const tl = gsap.timeline();
tl.to(".box", { duration: 0.5, scale: 1.2, ease: "power1.out" })
.to(".box", { duration: 0.5, scale: 1, opacity: 0.5, ease: "power1.inOut" })
.to(".box", { duration: 0.5, opacity: 1 });
Преимущества использования timeline:
delay) позволяют
управлять временем старта анимации.repeat) и йо-йо эффект
(yoyo) создают циклические анимации:gsap.to(".box", {
duration: 1,
scale: 1.3,
opacity: 0.5,
repeat: -1,
yoyo: true,
ease: "power1.inOut"
});
onComplete,
onStart) дают контроль над логикой после завершения или
старта эффекта.Эти техники позволяют создавать плавные, профессионально выглядящие интерфейсы с минимальными усилиями, делая взаимодействие с веб-страницей более динамичным и визуально привлекательным.
Масштабирование и эффекты прозрачности — фундаментальные инструменты GSAP, которые при грамотном сочетании дают полный контроль над динамикой элементов на странице.