如何判断D3强制布局何时停止

时间:2013-07-16 10:21:33

标签: javascript events layout d3.js force-layout

我正在使用D3的力布局来组织网络图,一切都很顺利。

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

2 个答案:

答案 0 :(得分:14)

使用wiki上记录的end事件。

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

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

答案 1 :(得分:1)

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