30

I have sequence of 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"/>

If it possible to loop this sequence without using script?

I can set individual animation to loop by using repeatCount="indefinite" by I want to loop the whole sequence in order.

serg
  • 103,023
  • 70
  • 299
  • 324

3 Answers3

40

Figured it out already. Solution for those who are interested:

<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"/>
serg
  • 103,023
  • 70
  • 299
  • 324
  • 2
    Works in (oold) Firefox 10, doesn't work in (up-to-date) Chrome 32, just if anyone encounters the same issue. And some useful links describing all the capabilities of animation timing: [W3C SVG 1.1 Spec.](http://www.w3.org/TR/SVG/animate.html#TimingAttributes), [Developer.Mozilla.org](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/begin). – Jeyekomon Jan 20 '14 at 00:06
34

You can also just loop within a single animateTransform by providing a values attribute with a semi-colon separated list:

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

Here's an example (checked in Firefox 4.0 and Chrome).

robertc
  • 69,665
  • 18
  • 184
  • 170
  • 2
    @janaspage I just stumbled across documentation for the values attribute here: http://www.w3.org/TR/smil-animation/#ValuesAttribute – chrisM Jun 26 '14 at 13:36
8

it's also possible to add/subtract (milli)seconds:

  begin="anim2.end-500ms"
Sathyajith Bhat
  • 19,739
  • 21
  • 90
  • 126
Ingmar de Lange
  • 289
  • 3
  • 16