D3 のフォース レイアウトを使用してネットワーク グラフを整理していますが、すべてがスムーズに機能します。
ただし、UI にボタンを追加して、ユーザーが自由にレイアウト プロセスを再生/一時停止できるようにしたいと考えています。レイアウトの現在の状態を反映するトグル ボタンが必要です。レイアウトが安定すると自動的に計算を停止します)。強制レイアウトの計算がいつ終了して開始されたかを知る方法はありますか? これを処理する何らかのイベントを期待していましたが、見つかりませんでした。
D3 のフォース レイアウトを使用してネットワーク グラフを整理していますが、すべてがスムーズに機能します。
ただし、UI にボタンを追加して、ユーザーが自由にレイアウト プロセスを再生/一時停止できるようにしたいと考えています。レイアウトの現在の状態を反映するトグル ボタンが必要です。レイアウトが安定すると自動的に計算を停止します)。強制レイアウトの計算がいつ終了して開始されたかを知る方法はありますか? これを処理する何らかのイベントを期待していましたが、見つかりませんでした。
wikiend
に記載されているイベントを使用します。
d3.layout.force()
.on('end', function() { console.log('ended!'); });
jsFiddle : http://jsfiddle.net/zschuessler/gRqv3/ | コンソールを表示して、リスナーの動作を確認します。
レイアウトの計算を「停止」したという概念は実際にはありません。静止しているように見えても、まだ小さな変化があるかもしれません。できることは、値をチェックしてalpha
、しきい値を下回った場合に停止したと解釈することです。この場合、レイアウトを明示的に停止する負の値に設定できます。これには特定のイベントはありませんが、tick
イベント ハンドラーで条件を確認できます。