9

我正在使用 D3 的力布局来组织网络图,并且一切正常。

但是,我想在我的 UI 中添加一个按钮,以便用户可以随意播放/暂停布局过程:我想要一个反映布局当前状态的切换按钮:是否正在计算(d3布局稳定后自动停止计算)。有没有办法判断力布局计算何时完成并开始?我期待某种事件来处理这个问题,但找不到。

4

2 回答 2

15

使用wikiend上记录的事件。

d3.layout.force()
   .on('end', function() { console.log('ended!'); });

jsFiddle:http: //jsfiddle.net/zschuessler/gRqv3/ | 查看控制台以查看正在运行的侦听器。

于 2013-08-23T17:02:56.117 回答
1

实际上并没有“停止”计算布局的概念。即使它看起来是静止的,也可能会有微小的变化。您可以做的是检查 的值,alpha如果它低于阈值,则将其解释为已停止。在这种情况下,您可以将其设置为负值,这将显式停止布局。对此没有特定的事件,但您可以在tick事件处理程序中检查您的情况。

于 2013-07-16T14:55:22.373 回答