offset-path:path 当运动轨道
同一条 path,交给 clip-path 是剪刀的走线;交给 offset-path,它变成一条轨道——元素被「穿」在路径上,位置不再由 top/left 决定,而是由里程 offset-distance 决定(0% 起点,100% 终点)。把 distance 做成动画,元素就沿任意曲线运动,这是
transform: translate 难以直接表达的。路径串本身的写法见 path 微语言一页。
1 · 手动控制里程
虚线是轨道(用 SVG 画出来辅助观察;真正起作用的是 CSS 值)。拖里程滑块,换轨道、换朝向:
offset 是五个子属性的合写。 offset-path 轨道 · offset-distance 里程 · offset-rotate 朝向 · offset-anchor 元素身上哪个点贴轨道(默认中心)· offset-position 给 ray() 这类「没有自带起点」的轨道定起点。可以合写成
offset: path("…") 30% / center 90deg。
轨道的取值面最广。 除了 path(),还有从一点按角度发射的 ray()、引用 SVG 的 url(#id)、整个 basic-shape 家族(形状的轮廓线当轨道,上面试了 circle/inset),以及 content-box 等 coord-box 关键字(盒子边缘当轨道)。动画 +
响应式的完整示例在 css-animation 系列的 Motion Path 页,该页把 7 种轨道并排对比。