Search code examples
svgsvg-animate

how to repeat infinitely the whole svg


I mean after my SVG stops completing the animation I want the animation to start over again and end and then again start over and so on.

I tried:

<svg>
  <animate repeatCount="indefinite"/>
</svg>

But it doesn't work.


Solution

  • See example animMotion01 in the w3 SVG spec for a fairly reduced example illustrating SVG animation (including use of repeatCount="indefinite"):

    <svg width="5cm" height="3cm"  viewBox="0 0 500 300"
         xmlns="http://www.w3.org/2000/svg" version="1.1"
         xmlns:xlink="http://www.w3.org/1999/xlink" >
      
      <desc>Example animMotion01 - demonstrate motion animation computations</desc>
      
      <rect x="1" y="1" width="498" height="298"
            fill="none" stroke="blue" stroke-width="2" />
      
      <!-- Draw the outline of the motion path in blue, along
              with three small circles at the start, middle and end. -->
      <path id="path1" d="M100,250 C 100,50 400,50 400,250"
            fill="none" stroke="blue" stroke-width="7.06"  />
      <circle cx="100" cy="250" r="17.64" fill="blue"  />
      <circle cx="250" cy="100" r="17.64" fill="blue"  />
      <circle cx="400" cy="250" r="17.64" fill="blue"  />
      
      <!-- Here is a triangle which will be moved about the motion path.
           It is defined with an upright orientation with the base of
           the triangle centered horizontally just above the origin. -->
      <path d="M-25,-12.5 L25,-12.5 L 0,-87.5 z"
            fill="yellow" stroke="red" stroke-width="7.06"  >
        
        <!-- Define the motion path animation -->
        <animateMotion dur="6s" repeatCount="indefinite" rotate="auto" >
           <mpath xlink:href="#path1"/>
        </animateMotion>
        
      </path>
    </svg>