动画全部同时开始和结束?

时间:2012-03-01 01:42:32

标签: animation svg

使用JavaScript在SVG中动态添加和动画特定组中的文本,我遇到了一个非常麻烦的问题,对我来说没有任何意义。根据文档,每个animate元素应单独影响其直接父元素,在本例中为每个单独的文本元素。问题是,假设我在0s创建一个动画文本元素,在1s创建另一个动画文本元素,并且它们的动画持续2s。从1s开始的那个将是动画的中途。然后,更糟糕的是,此后每animate基本上都停留在周期结束时。

我已尝试设置begin="indefinite"并使用element.beginElement()启动它,但这会产生同样的问题。我已经使用Chrome的元素检查器检查了结构,并且没有任何问题 - 每个animate都在text内,每个text都位于g

为什么要这样做?如何使每个animate唯一?

1 个答案:

答案 0 :(得分:0)

经过大量的摆弄后,我设法通过计算加载文档和创建animate元素之间的时间偏移来找到一个非常不稳定的解决方法,将begin属性设置为该数量除以1000。

starttime=+new Date
begin=(+new Date-starttime)/1000

我仍然想要一个更好的解决方案,但是......有没有更有效的方法让animate元素在创建时开始而不是记录和计算时间戳?至少我想使用wallclock(),因为这样可以避免不稳定的计算,但我无法让它工作。

编辑:我找到了一个更好的解决方案:SVG.getCurrentTime()