4

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

4

1 回答 1

7

是的,您不能提前安排无限数量的转换。:) 但是,您可以在旧转换结束(或开始)时重复安排新转换,使用transition.each来监听end(或start)事件。

看一下无限重复动画的链式转换示例。每当循环过渡开始时,它还会安排相同的后续过渡,允许过渡无限重复。

或者,您可以使用setIntervalsetTimeout重复创建转换,如并发转换示例中所示。与我链接的链式转换示例不同,这种方法不能保证链式转换的精确同步,但如果您想要的只是偶尔的背景闪烁,它可能是一种稍微简单的方法。

于 2013-07-31T16:54:18.450 回答