場合によっては、グラフをリロードしてグラフを再描画し、ページを更新せずに (jquery と ajax を使用して) 初期位置とスケールに設定する必要があります。私が使用したのは、https://github.com/cpettitt/dagre-d3のサンプル コード(インタラクティブなものではなく、ガイドに書かれているもの) であり、エッジとノードを動的クエリで読み込みます。
しかし、ノードとエッジをリロードして再度レンダリングすると、$("g.zoom) の位置とスケールが元のままでした。$("g.zoom) の属性「transform」と「scale」属性を編集しようとしました。 zoom") を jQuery で使用しますが、ユーザーがグラフをドラッグまたはズームすると、スケールと位置が元に戻ります。
https://github.com/cpettitt/dagre-d3/issues/17で解決策を試して、svg をリセットしました。
var svg = d3.select("svg > g");
svg.selectAll("*").remove();
その後はズームは利用できません。
また、次の方法があるかどうかを知りたいです。
- グラフ全体を表示するための適切なスケールを計算します (非常に大きなグラフを描画する必要がある場合があります)
- 画像をダブルクリックすると、どんどん大きくなるのではなく、固定サイズにズームされ、再度ダブルクリックすると、グラフ全体を表示できるスケールに戻ります
私は自分自身を理解してくれたことを願っています。:)