9
A
回答
6
當佈局收斂,force.alpha()
將被設置爲0。設置一個計時器輪詢爲(不要過於頻繁! ),你會知道你什麼時候完成。
此示例應每隔interval
毫秒重試,直到佈局停止。變量timer
保留當前計時器,如果您不想等待佈局完成,可以重置該計時器。
var timer = null;
function onCompletion(force, callback, interval) {
interval = interval || 300;
function retryIfRunning() {
if (force.alpha() != 0)
timer = setTimeout(checkAndRetry, interval);
else {
timer = null;
callback();
}
}
retryIfRunning();
}
2
這是不可能的,因爲內置的功能,因爲它取決於你考慮爲與放置節點完成。完成的方式是調用tick
函數n
次,其中n
取決於您擁有的圖表大小和所需的精度。
#force.tick():運行力佈局模擬一步。
我鼓勵你,如果你想知道更多閱讀force.tick()
文檔:https://github.com/mbostock/d3/wiki/Force-Layout#wiki-tick
13
從the documentation,當佈局完成時分派的end
事件,即當force.alpha === 0
。
所以,你可以找出當它與完成:
force
.nodes(yourNodes)
.links(yourLinks)
.on('tick', function() {
// layout is in progress
})
.on('end', function() {
// layout is done
callback();
});
相關問題
- 1. d3強制佈局 - 定位節點
- 2. D3JS強制佈局新節點斷開現有節點
- 3. 如何在UIWebView完成加載時強制重新佈局UITableViewCell?
- 4. D3強制佈局:突出顯示節點的顏色(「圓圈」)
- 5. D3強制定向佈局+所有節點到原始位置
- 6. 更新節點'D3強制佈局中的子元素位置
- 7. d3.js:強制佈局中的建議節點位置
- 8. d3強制佈局鏈接在節點中的位置
- 9. 如何在強制佈局中訪問節點的weight屬性?
- 10. D3.js強制佈局:如何隔離節點組?
- 11. 如何在D3強制佈局中添加複合節點?
- 12. 如何刪除D3強制佈局中的節點?
- 13. 創建強制定向佈局gexf文件與節點位置生成
- 14. 如何拖放節點,如果我給D3節點的固定像素強制佈局
- 15. Drupal 7:如何完全控制節點的佈局
- 16. D3.js強制佈局:顯示任何節點的根路徑
- 17. 如何完成此佈局?
- 18. D3強制佈局應在點擊節點時添加節點和鏈接
- 19. 檢測d3.js中的可見節點在縮放平臺後強制佈局
- 20. d3強制佈局縮放和平移與節點拖動衝突
- 21. D3 JS - 強制圖 - 刪除節點後不重新啓動佈局節點
- 22. 在d3強制佈局中查找/重新定位任意節點
- 23. 在d3中拖動多個節點強制定向佈局
- 24. d3強制佈局將組作爲「節點」
- 25. D3js強制佈局更新節點和鏈接
- 26. D3.js v4強制佈局和固定節點異常
- 27. 在d3強制佈局中移動固定節點
- 28. D3強制佈局節點屬性沒有正確更新
- 29. 僅修復強制佈局中節點的一個維度?
- 30. javascript-D3強制佈局默認摺疊某個節點
這是方式更短,然後接受的解決方案! @TO也許切換接受? – kwoxer