<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" viewBox="0 0 1920 150" preserveAspectRatio="none">
<path id="waves" d="M1920,150.4l-1920,0L0,17.19c0,0,111.94,45.39,145.82,48.62c65.77,6.26,159.1-57.84,225.53-57.28
c61.02,0.52,142.91,57.39,203.94,57.28C635.31,65.7,773,20.92,833,19.85c72.2-1.29,193.34,55.5,265.53,53.95
c57.97-1.25,176.24-63.16,234.24-63.94c66.09-0.89,210.02,56.01,276.12,55.95c65.42-0.06,143.53-59.13,208.29-65.27
C1837.43-1.38,1920,17.19,1920,17.19L1920,150.4z">
<animate attributeName="d"
dur="2s"
repeatCount="indefinite"
values="M1920,225L0,225L0,25c0,0,111.94,68.15,145.82,73c65.77,9.41,159.1-86.84,225.53-86
c61.02,0.78,142.91,86.16,203.94,86C635.31,97.84,773,30.61,833,29c72.2-1.93,193.34,83.33,265.53,81
c57.97-1.87,176.24-94.83,234.24-96c66.09-1.33,210.02,84.1,276.12,84c65.42-0.1,143.53-88.78,208.29-98
C1837.43-2.88,1920,25,1920,25L1920,225z;
M1920,150.4l-1920,0L0,17.19c0,0,71.94,55.39,105.82,58.62c65.77,6.26,223.1-63.84,289.53-63.28
c61.02,0.52,171.91,61.39,232.94,61.28C688.31,73.7,782,7.92,842,6.85c72.2-1.29,224.34,75.5,296.53,73.95
c57.97-1.25,193.24-64.16,251.24-64.94c66.09-0.89,196.02,56.01,262.12,55.95c65.42-0.06,140.53-53.13,205.29-59.27
c20.25-1.92,62.82,4.65,62.82,4.65L1920,150.4z;
M1920,225L0,225L0,25c0,0,111.94,68.15,145.82,73c65.77,9.41,159.1-86.84,225.53-86
c61.02,0.78,142.91,86.16,203.94,86C635.31,97.84,773,30.61,833,29c72.2-1.93,193.34,83.33,265.53,81
c57.97-1.87,176.24-94.83,234.24-96c66.09-1.33,210.02,84.1,276.12,84c65.42-0.1,143.53-88.78,208.29-98
C1837.43-2.88,1920,25,1920,25L1920,225z;"/>
</path>
</svg>
问题是如何让动画无限循环播放。
此刻,它就像反向执行一样。有没有关于这个正确动画的方法、文章或其他可能的信息来源?
波浪可以向任何方向前进 - 向左或向右,主要是无缝性,并且在此示例中没有“返回”(反向)效果。除了 JS,SVG 本身有没有办法创建这种效果?
也许只是将波浪向右或向左移动?唯一的问题是它应该完美平铺(我用脚本创建了路径)。
动画波浪的形状完全取决于开始和结束补丁。
为了不逆转波峰的运动,节点
"X"
在两个斑块中的坐标必须重合。这可以在矢量编辑器中完成。
在编辑器中打开初始补丁并垂直移动锚点。
波顶在哪里应该有波谷
保存补丁公式并编写动画命令:
values="Начальный патч; Конечный патч; Начальный патч"
相关问题,在更详细的示例中,使用属性动画描述了这种动画技术
d
path
多波
SVG 的优点在于,一旦您创建了一个对象,您就可以多次重复使用它。通过更改克隆参数:颜色、大小、放置位置,甚至动画都将为父代的后代保存。
在本节中保存了一个wave的代码后
<defs>
,我们将使用命令克隆它<use>
下面是完整的代码:
答案有点离题,但在答案中展示了
@Stranger in the Q
CSS 规则和 SVG 形状的交互方式。Css 调整波浪的大小并移动它。