Параметры: shape, shapeIndex, type

GSAP (GreenSock Animation Platform) предоставляет гибкий инструмент для анимации свойств объектов, включая сложные трансформации SVG-элементов и CSS-свойств. Понимание параметров shape, shapeIndex и type позволяет создавать точные и динамичные анимации, особенно в работе с SVG и морфингом форм.


Параметр shape

shape используется для анимации геометрических форм и контуров, чаще всего в SVG. Он определяет целевую форму, к которой должен анимироваться элемент. В GSAP shape обычно передается как строка с данными пути (path) или как массив точек.

Примеры использования:

gsap.to("#myShape", {
  duration: 2,
  shape: "M10,80 C40,10 65,10 95,80 S150,150 180,80"
});
  • Можно использовать как абсолютные координаты (M, L, C, S).
  • Поддерживаются относительные выражения.
  • shape позволяет плавно трансформировать сложные SVG-контуры, обеспечивая эффект морфинга.

Особенности:

  • Анимация форм работает корректно только если количество точек в исходной и целевой форме совпадает или GSAP автоматически выравнивает их.
  • Поддерживаются различные типы кривых (кубические, квадратичные) и замкнутые фигуры.

Параметр shapeIndex

shapeIndex задает порядок точек для морфинга форм. Этот параметр особенно важен при анимации сложных SVG-путей, когда автоматическое выравнивание точек недостаточно для корректной трансформации.

Примеры:

gsap.to("#myShape", {
  duration: 2,
  shape: "M10,80 C40,10 65,10 95,80 S150,150 180,80",
  shapeIndex: 2
});
  • shapeIndex указывает, с какой точки начинается анимация.
  • Позволяет управлять последовательностью морфинга, чтобы избежать нежелательных искажений при сложных формах.
  • Значение обычно берется от 0 до количества точек минус один.

Практическое применение:

  • При анимации логотипов или сложных фигур, где порядок точек в исходной и целевой форме не совпадает.
  • Для контроля направления трансформации: можно заставить форму «закрутиться» или «развернуться» в нужном порядке.

Параметр type

type определяет способ интерполяции значений при анимации. Для форм SVG наиболее часто встречаются значения linear и cubic, хотя GSAP поддерживает и более сложные варианты.

Примеры:

gsap.to("#myShape", {
  duration: 2,
  shape: "M10,80 C40,10 65,10 95,80",
  type: "cubic"
});
  • linear – прямолинейная интерполяция между точками, подходит для простых форм.
  • cubic – кубическая интерполяция, создающая плавные кривые и органические переходы.
  • Для сложных SVG-анимаций type помогает управлять гладкостью и естественностью морфинга.

Важные моменты:

  • При работе с кривыми Безье type: "cubic" обеспечивает более реалистичное движение контура.
  • Несовпадение type между начальной и конечной формой может привести к резким скачкам или искажениям формы.

Совмещение параметров

Чаще всего параметры shape, shapeIndex и type используются вместе для точного контроля над морфингом:

gsap.to("#myShape", {
  duration: 3,
  shape: "M10,80 C40,10 65,10 95,80 S150,150 180,80",
  shapeIndex: 1,
  type: "cubic"
});
  • shape задает целевую форму.
  • shapeIndex управляет стартовой точкой трансформации.
  • type определяет кривизну интерполяции.

Такое сочетание обеспечивает плавную, предсказуемую анимацию без искажений и визуальных артефактов.


Рекомендации по использованию

  1. Всегда проверять совпадение количества точек между исходной и целевой формой для сложного SVG-морфинга.
  2. Использовать shapeIndex при несимметричных или сложных контурах.
  3. Выбирать type исходя из желаемой кривизны: для органических форм — cubic, для геометрических линий — linear.
  4. Комбинировать с другими GSAP-параметрами (duration, ease) для управления временем и характером анимации.

Эти параметры формируют базу для точного управления морфингом и анимацией форм в GSAP. Правильное понимание их взаимодействия позволяет создавать динамичные и визуально привлекательные эффекты, избегая резких переходов и артефактов.