translate
offset-path
offset-distance
offset-rotate
Пример использования Motion Path
<div id="motion-element"></div>
CSS:
#motion-element {
offset-path: path('M20,20 C20,100 200,0 200,100');
animation: move 3000ms infinite alternate ease-in-out;
width: 40px;
height: 40px;
background: red;
border-radius: 100%;
}
@keyframes move {
0% {
offset-distance: 0%;
}
100% {
offset-distance: 100%;
}
}
Объяснение примера
offset-path: Свойство offset-path
задает путь, по которому будет перемещаться элемент. В данном примере используется path('M20,20 C20,100 200,0 200,100')
, что определяет кривую Безье. animation: Свойство animation
определяет анимацию с именем move
, длительностью 3000 миллисекунд, которая будет повторяться бесконечно и изменять направление на каждом повторении (с помощью alternate
). offset-distance: Внутри ключевых кадров ( @keyframes move
) свойство offset-distance
указывает процент пути, который элемент проходит на каждом этапе анимации.
Пример на CodePen
Важные замечания
Дополнительные возможности
offset-rotate: Позволяет элементу вращаться вдоль пути. Например, offset-rotate: auto;
заставит элемент поворачиваться в зависимости от кривизны пути. offset-anchor: Позволяет
#motion-element {
offset-path: path('M20,20 C20,100 200,0 200,100');
animation: move 3000ms infinite alternate ease-in-out;
width: 40px;
height: 40px;
background: red;
border-radius: 100%;
offset-rotate: auto;
}
@keyframes move {
0% {
offset-distance: 0%;
}
100% {
offset-distance: 100%;
}
}
С помощью этих новых возможностей CSS становится еще более мощным инструментом для создания анимаций и интерактивных эффектов на веб-страницах.