如何循环SVG动画序列?

时间:2010-09-02 18:21:53

标签: animation svg smil

我有animationTransform的序列:

<animateTransform attributeName="transform" attributeType="XML" type="rotate" from="0" to="30" begin="0s" dur="0.4s" fill="freeze"/>
<animateTransform attributeName="transform" attributeType="XML" type="rotate" from="30" to="0" begin="0.4s" dur="0.4s" fill="freeze"/>

如果可以在不使用脚本的情况下循环此序列?

我可以使用repeatCount="indefinite"将单个动画设置为循环,我希望按顺序循环整个序列。

3 个答案:

答案 0 :(得分:36)

已经弄清楚了。对于那些感兴趣的人的解决方案:

<animateTransform id="anim1" attributeName="transform" attributeType="XML" type="rotate" from="0" to="30" begin="0s; anim2.end" dur="0.4s" fill="freeze"/>
<animateTransform id="anim2" attributeName="transform" attributeType="XML" type="rotate" from="30" to="0" begin="anim1.end" dur="0.4s" fill="freeze"/>

答案 1 :(得分:30)

通过提供带有分号分隔列表的animateTransform属性,您也可以在单个values内循环:

<animateTransform attributeName="transform" type="rotate"
     values="0;30;0" begin="0s" dur="0.8s" fill="freeze"
     repeatCount="indefinite" />

Here's an example(在Firefox 4.0和Chrome中检查)。

答案 2 :(得分:7)

也可以加/减秒(毫秒):

  begin="anim2.end-500ms"