SVG - 动画如何同时运动几个元素?

时间:2018-01-25 18:35:42

标签: svg

我需要为多个svg元素制作动画,并且我使用了这种结构:

<g>
        <circle cx="" cy="" r="7" class="pulse">
            <animateMotion dur="25s" repeatCount="indefinite">
                <mpath xlink:href="#t1" />
            </animateMotion>
        </circle>

        <circle cx="" cy="" r="7">
            <animateMotion dur="25s" repeatCount="indefinite">
                <mpath xlink:href="#t1" />
            </animateMotion>
        </circle>
    </g>

它工作正常,但我有超过100个元素,需要动画。我可以使用animateMotion进行分组吗?或者也许同时有一个以上的元素?

2 个答案:

答案 0 :(得分:2)

您一次只能为一个元素设置动画,但该元素可以是一个容器,例如<g>,在这种情况下,所有内容都会设置动画。

&#13;
&#13;
<svg width="150" height="150" viewBox="0 0 150 150"
>
  <defs>
    <path d="M10,110 A120,120 -45 0,1 110 10 A120,120 -45 0,1 10,110" id="t1"/>
  </defs>

  <g>
    <animateMotion dur="25s" repeatCount="indefinite">
      <mpath xlink:href="#t1" />
    </animateMotion>
    <circle cx="5" cy="5" r="7" fill="red"/>
    <circle cx="25" cy="5" r="7"/>
  </g>
</svg>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

罗伯特·朗森(Robert Longson)正确地说,在某个时间点,您只能使用命令.htaccess

运行一个对象或一组对象

但是使用命令animateMotiontextPathanimate,您可以同时运行任意数量的对象。

可以将此类效果与移动的字母串的效果进行比较,但始终可以使用unicode characters dx ="x"在标记dy ="y" <内定位单个动作对象/ p>

&#13;
&#13;
<tspan>
&#13;
&#13;
&#13;