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

pro*_*zoo 9 javascript events layout d3.js force-layout

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

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

Zac*_*ler 14

使用Wikiend上记录的事件.

d3.layout.force()
   .on('end', function() { console.log('ended!'); });
Run Code Online (Sandbox Code Playgroud)

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


Lar*_*off 1

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