我正在使用D3的強制佈局來組織一個網絡圖,並且一切正常。如何判斷D3強制佈局何時停止
但是,我想向我的用戶界面添加一個按鈕,以便用戶可以隨意播放/暫停佈局過程:我想要一個反映當前佈局狀態的切換按鈕:是否正在計算或者沒有(當佈局穩定時,d3自動停止計算)。有什麼方法可以說明強制佈局計算何時完成並開始?我期望某種事件來處理這個事件,但是找不到一個事件。
我正在使用D3的強制佈局來組織一個網絡圖,並且一切正常。如何判斷D3強制佈局何時停止
但是,我想向我的用戶界面添加一個按鈕,以便用戶可以隨意播放/暫停佈局過程:我想要一個反映當前佈局狀態的切換按鈕:是否正在計算或者沒有(當佈局穩定時,d3自動停止計算)。有什麼方法可以說明強制佈局計算何時完成並開始?我期望某種事件來處理這個事件,但是找不到一個事件。
實際上並沒有「停止」計算佈局的概念。即使它看起來像靜止不動,仍然可能有微小的變化。您可以執行的操作是檢查alpha
的值,如果它低於閾值,則將其解釋爲停止。在這種情況下,您可以將其設置爲負值,從而明確停止佈局。沒有特定的事件,但您可以在tick
事件處理程序中檢查您的條件。
使用記錄在wiki上的end
事件。
d3.layout.force()
.on('end', function() { console.log('ended!'); });
jsFiddle:http://jsfiddle.net/zschuessler/gRqv3/ |查看控制檯以查看操作中的聽衆。
嗨,拉爾斯。 'end'事件監聽器自v2.8.0以來一直可用。 (rel 2012年2月24日)。 jsFiddle:http://jsfiddle.net/zschuessler/gRqv3/ –
好抓!檢查alpha也可能更安全,因爲它需要很長時間才能實際爲零。 –