Метод gsap.set() в библиотеке GSAP предназначен для
мгновенного присвоения свойств DOM-элементам без анимации. Он
обеспечивает прямое и эффективное управление стилями и трансформациями,
что особенно полезно при подготовке элементов перед запуском анимации
или для их динамического изменения во время работы скрипта.
gsap.set(target, vars);
Параметры:
target — DOM-элемент, селектор строки CSS или массив
элементов.vars — объект с ключами свойств и их значениями. Может
включать как CSS-свойства (opacity, x,
y, scale), так и специальные свойства GSAP
(rotation, transformOrigin).Пример:
gsap.set(".box", { x: 100, y: 50, opacity: 0.5 });
В этом примере элемент с классом box мгновенно смещается
на 100 пикселей по оси X, на 50 по оси Y и устанавливает прозрачность
50%.
GSAP автоматически использует трансформации CSS для изменения положения, масштаба и вращения элементов. Это обеспечивает:
transform, а не через
top/left.Примеры свойств трансформаций:
gsap.set(".circle", { rotation: 45, scale: 1.5, transformOrigin: "50% 50%" });
rotation задаёт угол поворота, scale —
масштабирование, а transformOrigin определяет точку
вращения.
gsap.set() поддерживает любые CSS-свойства, включая
цвета и шрифты:
gsap.set(".text", { color: "#ff0000", fontSize: "24px" });
GSAP автоматически добавляет единицы измерения, если они не указаны
для некоторых свойств (например, px для числовых значений
ширины и высоты).
Можно одновременно устанавливать свойства для группы элементов:
gsap.set(".items", { opacity: 0, y: -20 });
Все элементы с классом items мгновенно получают заданные
значения.
Также можно комбинировать gsap.set() с функциями для
динамических вычислений:
gsap.set(".box", {
x: (i) => i * 50,
opacity: (i, target) => i / 10
});
Здесь i — индекс элемента, а target — сам
элемент. Это позволяет создавать сложные распределения значений по
коллекции элементов.
gsap.set() может применяться для подготовки элементов
перед запуском анимации:
gsap.set(".ball", { x: 0, y: 0, scale: 0 });
gsap.to(".ball", { duration: 1, scale: 1, y: 200 });
Первый вызов мгновенно устанавливает начальные значения, а второй запускает анимацию от этих значений.
GSAP позволяет напрямую управлять CSS-переменными:
gsap.set(":root", { "--main-color": "#3498db" });
Это удобно для динамического изменения темы или визуальных эффектов на странице.
overwrite: "auto" — автоматически разрешает конфликты,
если несколько set или анимаций применяются к одним и тем
же свойствам.immediateRender: false — предотвращает мгновенное
применение при использовании внутри таймлайнов, если это
необходимо.Пример с таймлайном:
const tl = gsap.timeline();
tl.set(".box", { x: 100, opacity: 0.5, immediateRender: false })
.to(".box", { duration: 1, x: 300, opacity: 1 });
gsap.set() для инициализации начальных
состояний элементов перед анимацией.transformOrigin перед вращением или
масштабированием, чтобы избежать неожиданных смещений.gsap.set().Метод gsap.set() является фундаментальным инструментом
для управления состоянием элементов и обеспечивает мгновенные,
высокопроизводительные изменения, которые часто предшествуют анимациям
или динамическим интерактивным эффектам.