D3中的递归/重复动画事件

时间:2013-07-31 16:22:59

标签: animation svg d3.js transition

我正在尝试在D3中重复进行过渡,这将不断重复。具体来说,我正在使用地图,我希望背景恒星偶尔会闪烁。转换的问题是看起来它们都是提前运行的,所以它会提前尝试进行无限递归,并且页面永远不会加载。我找到了一个不是无限的相关例子(recursive d3 animation issue)。我唯一的另一个想法是以某种方式使用d3计时器,但我不完全确定如何去做。任何提示都表示赞赏。

1 个答案:

答案 0 :(得分:7)

是的,您无法提前安排无限次转换。 :)但是,您可以在旧转换结束(或启动)时重复计划新转换,使用transition.each监听结束(或开始)事件。

看一下chained transitions example无限重复的动画。每当圆形过渡开始时,它也会安排相同的后续过渡,允许过渡无限期重复。<​​/ p>

或者,您可以使用setIntervalsetTimeout重复创建转场,例如concurrent transitions example。与链接的链接转换示例不同,此方法不能保证链接转换的精确同步,但如果您只想要偶尔的背景闪烁,则可能是一种稍微简单的方法。