Методы GSAP gsap.from() и gsap.fromTo()
используются для анимации свойств объектов, начиная с определённых
значений или перехода между двумя точками. Они являются частью ядра
библиотеки GSAP и предоставляют гибкий контроль над анимациями в
JavaScript.
gsap.from()Метод gsap.from() позволяет анимировать элемент
от заданного состояния к текущему значению CSS.
Основная идея заключается в том, что начальные значения задаются явно, а
конечные значения автоматически берутся из текущего состояния элемента в
DOM.
Синтаксис:
gsap.from(target, {duration: 1, x: 100, opacity: 0});
Параметры:
target – селектор, DOM-элемент или массив элементов,
которые будут анимироваться.duration – длительность анимации в секундах.x, y, opacity,
scale).Примеры применения:
gsap.from(".box", {duration: 1.5, x: -200, opacity: 0});
Элемент с классом .box будет появляться с левого края на
свою исходную позицию и плавно увеличивать прозрачность до 1.
gsap.from(".circle", {duration: 2, scale: 0, ease: "elastic.out(1, 0.5)"});
Элемент увеличивается от масштаба 0 до исходного размера с эффектом пружины.
Особенности gsap.from():
stagger для последовательного
появления группы элементов:gsap.from(".item", {duration: 1, y: 50, opacity: 0, stagger: 0.2});
gsap.fromTo()Метод gsap.fromTo() предоставляет полный контроль над
анимацией, позволяя явно указать начальные и конечные
значения свойств. Этот метод полезен, когда необходимо
анимировать элемент из одного состояния в другое, не зависящее от
текущих значений в DOM.
Синтаксис:
gsap.fromTo(target,
{x: 0, opacity: 0}, // from
{x: 300, opacity: 1, duration: 2} // to
);
Параметры:
target – селектор или элемент.fromVars – объект начальных свойств анимации.toVars – объект конечных свойств анимации, включая
duration, ease, stagger и другие
опции.Примеры применения:
gsap.fromTo(".square",
{x: 0, rotation: 0},
{x: 400, rotation: 360, duration: 3, ease: "power2.inOut"}
);
Элемент перемещается вправо и одновременно вращается на 360 градусов с плавным ускорением и замедлением.
gsap.fromTo(".button",
{opacity: 0, scale: 0.5},
{opacity: 1, scale: 1, duration: 1, ease: "back.out(1.7)"}
);
Элемент постепенно появляется, увеличивая размер с эффектом «выбрасывания».
Особенности gsap.fromTo():
gsap.to() и gsap.from(), включая
delay, stagger, repeat и
yoyo.gsap.from() и gsap.fromTo()| Характеристика | gsap.from() |
gsap.fromTo() |
|---|---|---|
| Начальное значение | Задаётся явно | Задаётся явно |
| Конечное значение | Берётся из текущего состояния элемента | Задаётся явно |
| Применение | Простые анимации появления | Полный контроль для сложных анимаций |
| Использование в последовательностях | Подходит, но зависит от текущего состояния | Надёжно для точных эффектов |
gsap.timeline() для создания сложных
анимаций с синхронизацией:const tl = gsap.timeline({defaults: {duration: 1}});
tl.from(".header", {y: -50, opacity: 0})
.from(".content", {x: -200, opacity: 0}, "-=0.5")
.fromTo(".footer", {y: 50, opacity: 0}, {y: 0, opacity: 1});
ease
(power1, power2, elastic,
bounce и другие), которые работают одинаково в
from и fromTo.stagger, repeat и yoyo для
создания более выразительных анимационных эффектов на группах
элементов.Методы gsap.from() и gsap.fromTo()
обеспечивают точное управление анимацией объектов на странице, позволяя
задавать начальные состояния, изменять свойства плавно и комбинировать
их в последовательности для сложных визуальных эффектов.