我正在使用D3的力布局来组织网络图,一切都很顺利。
但是,我想在我的UI中添加一个按钮,以便用户可以随意播放/暂停布局过程:我想要一个反映布局当前状态的切换按钮:无论是计算还是不是(当布局稳定时,d3会自动停止计算)。有没有办法告诉力布局计算何时完成并开始?我期待某种事件可以解决这个问题,但找不到一个。
答案 0 :(得分:14)
使用wiki上记录的end
事件。
d3.layout.force()
.on('end', function() { console.log('ended!'); });
jsFiddle:http://jsfiddle.net/zschuessler/gRqv3/ |查看控制台以查看正在运行的侦听器。
答案 1 :(得分:1)
实际上并没有让#34;停止"计算布局。即使它看起来像是静止的,也可能会有微小的变化。您可以做的是检查alpha
的值,如果它低于阈值则将其解释为已停止。在这种情况下,您可以将其设置为负值,这将显式停止布局。没有针对此的特定事件,但您可以在tick
事件处理程序中检查您的状况。