循环上的SVG动画不透明度

时间:2012-08-06 12:20:25

标签: animation svg opacity

我想让svg路径的不透明度在0到100之间变回0并在连续循环中变为100.

到目前为止,我可以让它从0到100动画,但不会再回来,

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:41)

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

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

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

答案 1 :(得分:22)

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

<rect x="10" y="10" width="20" height="20">
    <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>