我试图做到这一点,使用SVG路径在一个网站动画(下面的图片)。我看到这个https://css-tricks.com/svg-line-animation-works/,想尝试一下。但我不知道如何创建的输出路径和动画。请你帮帮我吧!谢谢
您可以使用SVG代码动画。您可以在SVG路径中使用CSS动画。
.st0{
fill:none;
stroke:#000000;
stroke-miterlimit:10;
stroke-dasharray: 1000;
stroke-dashoffset: 1000;
-webkit-animation: draw1 4s linear forwards;
animation: draw1 4s linear forwards;
}
.st1{
fill:none;
stroke:#000000;
stroke-miterlimit:10;
stroke-dasharray: 200;
stroke-dashoffset: 200;
-webkit-animation: draw2 3s linear 2s forwards;
animation: draw2 3s linear 2s forwards;
}
@-webkit-keyframes draw1{
to {stroke-dashoffset: 0;}
}
@keyframes draw1{
to {stroke-dashoffset: 0;}
}
@-webkit-keyframes draw2{
to {stroke-dashoffset: 0;}
}
@keyframes draw2{
to {stroke-dashoffset: 0;}
}
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 614 53" style="enable-background:new 0 0 614 53;" xml:space="preserve">
<polyline class="st0" points="0.5,53 0.5,20.7 613.5,20.7 613.5,53 "/>
<line class="st1" x1="307" y1="53" x2="307" y2="0"/>
</svg>
动画使用属性<stroke-dashoffset>
- 从行的开始缩进。在<stroke-dashoffset>
的最大值可见的线是零。
随着<stroke-dashoffset ="0">
行获得的最大大小的值。
有必要精确地计算线的长度,以避免在动画不可预知的影响。
在这个例子中,<line>
的长度为53px,对于<polyline>
是为680像素。
<style>
.st0{fill:none;stroke:#000000;stroke-miterlimit:10; stroke-dasharray: 680; stroke-dashoffset: 680;}
.st1{fill:none;stroke:#000000;stroke-miterlimit:10; stroke-dasharray: 53; stroke-dashoffset: 53;}
</style>
<svg version="1.1" viewBox="0 0 614 53" >
<polyline class="st0" points="0.5,53 0.5,20.7 613.5,20.7 613.5,53 " >
<animate
attributeName="stroke-dashoffset"
from="680"
to="0"
dur="2s"
fill="freeze" />
</polyline>
<line class="st1" x1="307" y1="53" x2="307" y2="0">
<animate
attributeName="stroke-dashoffset"
from="53"
to="0"
dur="2s"
fill="freeze" />
</line>
</svg>