В библиотеке anime.js анимации строятся вокруг изменения значений CSS-свойств, атрибутов SVG и других числовых свойств объектов. Одним из ключевых инструментов управления анимацией является использование абсолютных значений. Абсолютные значения задают конечное состояние свойства точно, без привязки к его текущему значению, что обеспечивает полный контроль над движением объекта.
Абсолютные значения задаются напрямую через объект
targets и свойства анимации. Например, чтобы переместить
элемент на точные координаты:
anime({
targets: '.box',
translateX: 250, // абсолютное значение по оси X в пикселях
translateY: 100, // абсолютное значение по оси Y в пикселях
duration: 2000,
easing: 'easeInOutQuad'
});
Здесь translateX и translateY не зависят от
исходной позиции элемента: после анимации его координаты будут точно
равны 250px и 100px относительно родителя или точки отсчета.
Особенности:
px,
%, deg).Относительные значения (+=50 или -=)
изменяют текущую позицию элемента относительно исходного состояния, в то
время как абсолютные значения фиксируют конечное положение.
Например:
// Относительное изменение
anime({
targets: '.box',
translateX: '+=50', // сдвигает элемент на 50px от текущей позиции
duration: 1000
});
// Абсолютное значение
anime({
targets: '.box',
translateX: 50, // перемещает элемент в точку X = 50px
duration: 1000
});
Использование абсолютных значений позволяет создавать предсказуемые и точные анимации, особенно в сложных интерфейсах, где координаты должны соответствовать макету.
Anime.js поддерживает одновременное изменение нескольких свойств с абсолютными значениями. Это удобно для комплексных эффектов движения и трансформаций:
anime({
targets: '.circle',
translateX: 300,
translateY: 200,
scale: 1.5,
rotate: 180,
opacity: 0.7,
duration: 1500,
easing: 'easeInOutSine'
});
В данном примере все свойства получают конкретные значения, к которым элемент приходит синхронно, независимо от начальных состояний.
Абсолютные значения отлично сочетаются с ключевыми кадрами. Массив значений позволяет задать последовательность точных состояний:
anime({
targets: '.square',
translateX: [0, 100, 50, 200], // последовательные абсолютные значения
rotate: [0, 90, 45, 180],
duration: 4000,
easing: 'linear'
});
Каждое значение массива соответствует отдельной фазе анимации. Элементы будут перемещаться и вращаться строго по указанным координатам и углам.
Для работы с SVG атрибутами cx, cy,
r или stroke-dashoffset также применяются
абсолютные значения:
anime({
targets: 'circle',
cx: 150, // абсолютная координата центра по оси X
cy: 100, // абсолютная координата центра по оси Y
r: 50, // радиус круга
duration: 1200,
easing: 'easeOutExpo'
});
Использование точных значений обеспечивает полное соответствие анимации дизайну, без смещений и искажений.
easing для создания плавных и контролируемых движений.Абсолютные значения в anime.js являются основой точной и предсказуемой анимации, обеспечивая полный контроль над конечными состояниями элементов независимо от их исходного положения или размеров.