Полный список опций

duration Определяет продолжительность анимации в миллисекундах.

Допускаются варианты записи:

  • число: 400, 1000, 200
  • строковые пресеты (в зависимости от конфигурации проекта или соглашений команды)

Поведение параметра линейно влияет на все интерполируемые свойства: чем больше значение, тем медленнее происходит переход между начальным и конечным состоянием.


delay Задаёт задержку перед запуском анимации.

Используется для:

  • построения последовательных сцен
  • синхронизации нескольких анимаций
  • создания эффекта «вступления» элементов

Значение указывается в миллисекундах и применяется до старта вычисления первого кадра.


Управление кривыми движения

easing Определяет математическую кривую интерполяции значений во времени.

Поддерживаются:

  • строковые значения:

    • linear
    • swing
    • ease
    • ease-in
    • ease-out
    • ease-in-out
  • пользовательские функции (в расширенных конфигурациях Velocity):

    • cubic-bezier выражения
    • массивы коэффициентов
    • функции вида function(t, b, c, d)

Кривая easing влияет на:

  • ускорение
  • замедление
  • характер движения (плавный, резкий, пружинящий)

Повторение и циклы

loop Определяет количество повторов анимации.

Варианты:

  • true — бесконечный цикл
  • число — фиксированное количество повторений
  • false или отсутствие параметра — однократное выполнение

При каждом повторе происходит полное воспроизведение анимационной цепочки с начала.


Управление отображением элемента

display Контролирует CSS-свойство display на старте и завершении анимации.

Часто используется для:

  • появления скрытых элементов
  • корректного управления layout-потоком

Возможные значения:

  • auto — автоматическое определение
  • none
  • любые валидные CSS display значения: block, inline-block, flex

visibility Управляет свойством видимости элемента.

Значения:

  • visible
  • hidden

В отличие от display, не влияет на поток документа, но скрывает элемент визуально.


Очереди выполнения

queue Определяет, в какую очередь попадёт анимация.

Возможные формы:

  • true — стандартная очередь
  • false — немедленное выполнение без очереди
  • строка — имя пользовательской очереди

Применяется для:

  • построения сложных цепочек анимаций
  • параллельного выполнения независимых эффектов
  • синхронизации интерфейсных переходов

Колбэки жизненного цикла

begin Вызывается перед стартом анимации.

Сигнатура:

  • получает массив элементов, участвующих в анимации

Применяется для:

  • подготовки состояния перед стартом
  • блокировки пользовательского ввода
  • изменения начальных классов

complete Вызывается после завершения анимации.

Срабатывает один раз, когда:

  • все элементы завершили анимацию
  • очередь полностью отработала

Используется для:

  • цепочек переходов
  • финализации состояния интерфейса
  • запуска следующего действия

progress Вызывается на каждом кадре анимации.

Сигнатура:

  • elements — массив анимируемых элементов
  • complete — процент завершения (0–1)
  • remaining — оставшееся время
  • start — начальное значение времени
  • tweenValue — текущее значение интерполяции

Позволяет:

  • отслеживать прогресс анимации
  • строить кастомные индикаторы
  • синхронизировать внешние визуальные эффекты

Управление производительностью

mobileHA Активирует аппаратное ускорение для мобильных устройств.

Значения:

  • true — включает translateZ(0) или аналогичные оптимизации
  • false — отключает аппаратное ускорение

Используется для:

  • повышения плавности анимаций
  • уменьшения фризов на слабых устройствах
  • оптимизации сложных сцен с множеством DOM-элементов

Управление свойствами отображения

Velocity работает с CSS-свойствами через объектную модель, где ключи описывают анимируемые параметры:

Примеры категорий:

  • геометрия: width, height, margin, padding
  • позиционирование: left, top, right, bottom
  • трансформации: translateX, translateY, scale, rotate
  • прозрачность: opacity
  • цветовые значения: backgroundColor, color

Каждое свойство интерполируется от начального к конечному значению с учётом easing и duration.


Дополнительные параметры исполнения

queue: false + свойства анимации Комбинация используется для параллельного запуска анимаций без ожидания завершения предыдущих.

Это влияет на:

  • одновременное движение нескольких элементов
  • независимость анимационных потоков

синхронизация нескольких элементов Velocity автоматически группирует элементы, если передаётся коллекция DOM-узлов. Все параметры применяются равномерно ко всем элементам массива, если не задана индивидуальная логика внутри callbacks.


Внутреннее поведение параметров

Параметры Velocity интерпретируются в строгом порядке:

  1. Инициализация состояния элементов
  2. Применение delay
  3. Запуск begin callback
  4. Построение очереди (queue)
  5. Интерполяция свойств с easing
  6. Вызов progress на каждом кадре
  7. Завершение и вызов complete
  8. Очистка временных стилей и состояний

Особенности комбинирования опций

Некоторые параметры взаимодействуют друг с другом:

  • loop влияет на повторный вызов begin и complete
  • queue определяет изоляцию или последовательность анимаций
  • delay сдвигает всю цепочку исполнения, включая callbacks
  • display и visibility могут конфликтовать при одновременном управлении видимостью

Поведение при отмене анимации

Хотя это не опция, параметры влияют на то, как происходит остановка:

  • при активном loop остановка требует явного завершения цикла
  • при использовании queue остановка затрагивает только текущую очередь
  • callbacks могут не быть вызваны при принудительном прерывании

Расширенные сценарии применения параметров

Комбинации опций формируют различные паттерны поведения:

  • duration + easing — базовая форма управления движением
  • delay + queue — построение последовательных сцен
  • loop + easing — циклические анимации с динамикой ускорения
  • progress + mobileHA — мониторинг и оптимизация производительности в реальном времени