循环上的 SVG 动画不透明度

Posted

技术标签:

【中文标题】循环上的 SVG 动画不透明度【英文标题】:SVG animation opacity on loop 【发布时间】:2012-08-03 10:02:01 【问题描述】:

我想让 svg 路径的不透明度在连续循环中从 0 到 100 回到 0 和 100。

到目前为止,我可以让它从 0 变为 100 的动画,但不能再返回,

有什么想法吗?

谢谢

【问题讨论】:

我们能看到你目前的代码吗? (如果愿意,可以将其编辑到您的帖子中)。 【参考方案1】:

您可以使用values 属性为任意数量的值设置动画,如下所示:

<rect x="10" y="10"  >
    <animate attributeName="opacity"
             values="0;1;0" dur="1s"
             repeatCount="indefinite"/>
</rect>

这将在 1 秒内从不透明度 0 变为不透明度 1 (100%),然后再次回到 0。

【讨论】:

这似乎没有重复..可能需要repeatCount="indefinite"【参考方案2】:

您有两个独立的动画 - 一个用于增加不透明度,一个用于降低不透明度。每个都在另一个结束时开始,但第一个也从 0 开始。这是一个矩形的例子:

<rect x="10" y="10"  >
    <animate id="animation1"
             attributeName="opacity"
             from="0" to="1" dur="1s"
             begin="0s;animation2.end" />
    <animate id="animation2"
             attributeName="opacity"
             from="1" to="0" dur="1s" 
             begin="animation1.end" />
</rect>

【讨论】:

不推荐使用的元素 :( @DougChamberlain 弃用了元素?对我来说工作得很好。

以上是关于循环上的 SVG 动画不透明度的主要内容,如果未能解决你的问题,请参考以下文章

创建动画SVG路径

SVG SMIL:animateTransform 替换为设置(不透明度和缩放属性)

使用 Raphael 动画不透明度

将 SVG 动画录制并保存为动画 GIF [关闭]

jQuery 动画不透明度在 Safari 中不起作用

我可以使用动画 SVG 作为应用程序的加载图标吗(Apple iOS)