【发布时间】:2021-03-25 13:59:25
【问题描述】:
我是 SVG 动画的新手,我正在尝试为我在 Figma 中制作并导出为 SVG 的“波浪”背景设置动画。
基本上,正如您在 sn-p 中看到的那样,我试图保持波浪的形状,但使轮廓移动得非常微妙。那有可能吗?如果是这样,我应该使用什么方法?我不知道从哪里开始。我尝试使用 SVG <animate> 并弄乱了数字,但它不起作用,打破了浪潮,甚至没有动画。
非常感谢一个例子,或者如果有人能指出我正确的方向,那么我可以试一试。
这是我的 SVG 原始路径:
<svg width="1279" height="650" viewBox="0 0 1279 650" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="
M -138 -167.889
C -138 -167.889
2002 -494.389
1020.73 -167.889
C 39.4558 158.611
1111.22 305.526
942.746 516.955
C 681.205 845.177
-138 458.649
-138 458.649
V -167.889
Z"
fill="#000000">
</path>
</svg>
这是我尝试制作动画但失败的地方:
<div class="wave">
<svg width="1279" height="650" viewBox="0 0 1279 650" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="
M -138 -167.889
C -138 -167.889
2002 -494.389
1020.73 -167.889
C 39.4558 158.611
1111.22 305.526
942.746 516.955
C 681.205 845.177
-138 458.649
-138 458.649
V -167.889
Z"
fill="#EDE5FA">
<animate
repeatCount="indefinite"
fill="#454599"
attributeName="d"
dur="15s"
values="
M -138 -167.889
C -128 -167.889
2002 -494.389
1020.73 -167.889
C 139.4558 158.611
1411.22 305.526
942.746 516.955
C 881.205 845.177
-138 458.649
-138 458.649
V -167.889
Z
">
</animate>
</path>
</svg>
</div>
谢谢
<div class="wave">
<svg width="1279" height="650" viewBox="0 0 1279 650" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="
M -138 -167.889
C -138 -167.889
2002 -494.389
1020.73 -167.889
C 39.4558 158.611
1111.22 305.526
942.746 516.955
C 681.205 845.177
-138 458.649
-138 458.649
V -167.889
Z"
fill="#000000">
</path>
</svg>
</div>
【问题讨论】:
-
属性
values 应该是一个分号 (;) 分隔的值列表。在您的情况下,您需要使用d属性列表 -
您可以阅读https://codepen.io/noahblon/post/an-intro-to-svg-animation-with-smil 了解如何构建 svg 动画。
-
@enxaneta 哇,分号确实解决了它。非常感谢!
-
@Pierre-NicolasMougel 感谢您的链接,我会读一读。我有点意识到我可以在 figma 本身中创建不同的路径并生成不同的 SVG 并在我的动画中使用它们
-
感谢您的提问,我不知道可以为 SVG 制作动画,感谢您,我学到了一些东西 :)
标签: svg svg-animate