CSS offset-path — рух елемента вздовж заданого шляху


CSS властивість offset-path задає траєкторію, уздовж якої рухається елемент: коло, лінію чи довільний SVG-шлях.

автор: NagarD

Загальний опис

Звичайні перетворення рухають елемент по прямій між двома точками. Щоб пустити його по дузі чи по хвилі, раніше довелось би рахувати координати покадрово в JavaScript.

offset-path задає саму криву, а offset-distance — позицію на ній: від 0% (початок шляху) до 100% (кінець). Анімувати треба лише другу — і елемент поїде по кривій.

Ще є offset-rotate: за замовчуванням елемент повертається за напрямком руху, як машинка на трасі.

автор: NagarD

Порада

Шлях зручно намалювати в SVG-редакторі, а потім скопіювати атрибут d просто в path() — координати тут ті самі.

автор: NagarD

Синтаксис

offset-path: none | <basic-shape> | path(<string>) | <url>;

Властивість offset-path може отримувати 4 значень:

none

Без траєкторії.

автор: NagarD

path()

SVG-шлях: path("M 0 0 L 100 100").

автор: NagarD

basic-shape

Фігура: circle(), inset(), polygon()…

автор: NagarD

url

Посилання на SVG-елемент.

автор: NagarD

Значення без задання: none
Наслідує: Ні
Анімується: Так

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
offset-path 55+ 72+ 15.4+ 42+ 79+ -
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
offset-path 55+ yes yes 15.4+

Приклади

+ запропонувати свій приклад у пісочниці

Елемент їде по кривій, а не по прямій.

HTML

<div class="rocket">🚀</div>

CSS

.rocket {
    /* траєкторія — хвиля */
    offset-path: path('M 0 100 Q 100 0 200 100 T 400 100');
    offset-distance: 0%;
    animation: fly 4s linear infinite;
}

@keyframes fly {
    to { offset-distance: 100%; }
}
автор: NagarD

Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Пропозиція правки

Ваша версія — : після перевірки замінить чинну. Нова порада чи нотатка — з'явиться на сторінці після перевірки.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія секції «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Ваша версія опису «»: після перевірки замінить чинну.

Ви гість — діють добові ліміти. Увійдіть, щоб пропонувати без капчі.

Зворотний зв'язок
Вхід