Velocity.js предоставляет мощный механизм для создания анимаций с
высокой степенью контроля над их динамикой. Одним из ключевых аспектов
анимации является функция плавности (easing), которая
определяет, как изменяется скорость анимируемого свойства во времени. В
Velocity.js функции плавности задаются параметром easing,
который может принимать строковые значения, массивы, функции и
предустановленные типы.
Velocity.js поддерживает набор стандартных функций плавности, аналогичных CSS:
linear – равномерное движение без ускорения и замедления.
Velocity(element, { left: "500px" }, { duration: 1000, easing: "linear" });ease-in – постепенное ускорение от медленного к быстрому.
ease-out – постепенное замедление от быстрого к медленному.
ease-in-out – сочетание ускорения в начале и замедления в конце.
Эти функции удобно использовать для простых анимаций без необходимости точной настройки динамики.
Velocity.js поддерживает кастомные кривые Безье,
задаваемые массивом из четырёх чисел [x1, y1, x2, y2]. Это
позволяет создавать уникальные динамики ускорения и замедления:
Velocity(element, { opacity: 0 }, {
duration: 1200,
easing: [0.42, 0, 0.58, 1] // cubic-bezier аналог ease-in-out
});
Кривые Безье дают возможность гибко регулировать поведение анимации
на каждом её этапе. Параметры x1 и x2 задают
положение времени, а y1 и y2 — скорость
изменения свойства.
Velocity.js интегрирует физические модели анимации, например spring, для создания реалистичных эффектов подпрыгивания:
Velocity(element, { translateY: "100px" }, {
duration: 1000,
easing: "spring"
});
Velocity.js позволяет задавать функции плавности
вручную. Функция должна принимать один параметр t
(время от 0 до 1) и возвращать значение прогресса (0–1):
Velocity(element, { left: "400px" }, {
duration: 1500,
easing: function(t) {
return t * t; // квадратичное ускорение
}
});
Такой подход обеспечивает полный контроль над динамикой анимации и позволяет создавать уникальные визуальные эффекты.
Массивы для настройки кривой и скорости
easing: [0.25, 0.1, 0.25, 1]
Первый элемент массива задаёт начальную скорость, второй – конечную кривую, а третий и четвёртый – контроль ускорения и замедления.
Совместимость с CSS Velocity.js поддерживает большинство CSS-предустановок easing, что упрощает миграцию анимаций с CSS на Velocity.
Анимации нескольких свойств с разными easing Можно задать индивидуальные функции плавности для каждого свойства:
Velocity(element, {
width: "300px",
height: "200px"
}, {
duration: 1200,
easing: {
width: "ease-in",
height: [0.5, 0, 0.5, 1]
}
});
Это позволяет комбинировать разные динамики для сложных интерфейсных эффектов.
ease-in-out или
linear.Функции плавности в Velocity.js — это гибкий инструмент управления динамикой анимации. Они могут быть простыми (предустановленные), кастомными (Bezier, функции) или физическими (spring). Правильное использование easing позволяет создавать профессиональные, плавные и живые интерфейсы, а разнообразие подходов обеспечивает полный контроль над визуальными эффектами.