<!DOCTYPE html>
<html>
<head>
<style>
#frameDiv {
width: 200px;
height: 200px;
margin: 20px;
position: relative;
border: solid black 1px;
background-color: rgb(205, 242, 205);
}
span {
position: absolute;
top: 0;
left: 0;
}
#frameDiv > div {
width: 50px;
height: 20px;
border-radius: 3px 10px 10px 3px;
background-color: hotpink;
offset-path: path('M20,170 L100,20 L180,100 Z');
animation: moveDiv 3s 3;
}
@keyframes moveDiv {
100% { offset-distance: 100%; }
}
</style>
</head>
<body>
<h1>沿偏移路径的动画</h1>
<div id="frameDiv">
<span>200x200px</span>
<div></div>
</div>
<p>粉红色的 div 被设置为沿 SVG 语法编写的路径进行动画。</p>
<p><code>offset-path: path('M20,170 L100,20 L180,100 Z');</code> 创建了一个路径,从位置 x,y=20,170 开始,然后画一条线到位置 100,20,再画一条线到 180,100,最后画一条线回到起点。</p>
<ul>
<li>'M' = 移动到</li>
<li>'L' = 画线到</li>
<li>'Z' = 关闭路径</li>
</ul>
<p>有关如何绘制 SVG 路径的更多信息,请访问 <a href="https://www.w3school.com.cn/graphics/svg_path.asp" target="_blank">SVG 教程 -> SVG路径</a></p>
</body>
</html>