浏览器中的SVG动画

时间:2013-12-02 02:11:55

标签: css html5 svg svg-animate

我在一个组中有一堆svg圈。

我希望他们每秒向左移动30次以创建滚动效果。

我以1/30秒的间隔使用requestAnimationFrame,然后我应用

setAttribute('transform', 'translate(-' + offsetPx + ', 0)')

在chrome时间轴调试工具中,它显示设置此transform属性会导致重新计算布局,这非常昂贵。根据这篇文章:http://www.html5rocks.com/en/tutorials/speed/high-performance-animations/我认为这不应该发生。

实现此滚动效果的最有效方法是什么?

提前致谢。

2 个答案:

答案 0 :(得分:2)

如果您不需要使用requestAnimationFrame,则可以使用SVG动画标记。

<circle cx="50" cy="50" r="10">
    <animate attributeName="cx" from="50" to="0" dur="2" repeatCount="indefinite" />
</circle>

此处有更多信息https://developer.mozilla.org/en-US/docs/Web/SVG/Element/animate

答案 1 :(得分:1)

看起来我已经搜索了很久以前,在我看来,如果你要针对移动设备,不要担心这个问题,但是我想让你测试这个插件:

http://www.greensock.com/js/speed.html

因为那里的许多统计数据不正确。