CSS Motion Path offset-path 与路径动画实践概述CSS Motion Path 通过 `offset-path` 等属性让元素沿着路径(包含 `path()`/`url(#id)`/形状)运动,避免大量 JS 驱动的滚动监听或逐帧计算。核心概念与参数`offset-path`:定义运动路径(SVG 路径、形状或几何盒),早期称 `motion-path`。`offset-distance`:沿路径的进度(0%–100% 或长度单位)。`offset-rotate`:运动方向与元素旋转(如 `auto 90deg`)。实践示例<style>
.ball { width: 20px; height: 20px; border-radius: 50%; background: #ef4444; }
.ball { offset-path: path('M0,0 C100,0 100,100 200,100'); }
.ball { animation: run 2s ease-in-out infinite alternate; }
@keyframes run { from { offset-distance: 0%; } to { offset-distance: 100%; } }
</style>
<div class="ball" aria-hidden="true"></div>
验证方法浏览器支持:Chrome 85+、Safari 16.2+、Firefox 121+(参考 MDN/CanIUse 与厂商实现)。性能评估:使用合成层动画,避免主线程布局重排;在 DevTools Performance 观察帧率与绘制。回退策略:旧浏览器采用 Web Animations/JS 补充或简化运动轨迹。注意事项在 SVG 坐标系与 CSS 像素坐标间转换时注意视盒与单位差异。控制动画区间与缓动,避免过长或复杂路径影响交互响应。与滚动驱动动画搭配时明确职责,避免双重控制同一元素。

发表评论 取消回复