[CSS] svg路径动画

在制作CSS动画时,往往会有这样的需求。

让一个正方形沿着给定的路径移动。

如果运动路径不规则,那么设置top和left的属性值是非常困难的。

这时候可以用svg来实现。

path元素的形状由其d属性定义,

d属性的值是一个“命令+参数”的序列。

其中M 20 30 L 160 180包含两个命令序列。

M 20 30表示将画笔移动到坐标20和30,

L 160 180表示从画笔的当前位置到160和180位置画一条直线。

Path元素支持多种命令,你可以参考这里的,曲线命令。

html元素的CSS样式属性offset-path表示偏移路径。

通过将offset-path的值指定为path元素的d属性的值,我们可以实现元素沿着给定路径的移动。

其中offset-distance指定元素从初始位置偏移的百分比。

通过在@keyframes中逐帧改变偏移距离,可以实现动画效果。

我们将path的D属性修改为m10 80c40 10,6510,9580s150 150,180 80。

相应地修改多维数据集的偏移路径属性。

可以实现小方块沿着路径移动的效果。

MDN:路径

MDN:偏移路径

MDN:偏移距离

SVG动画操作指南

可缩放矢量图形(SVG) 2 -第9章:路径