潜在的な解決策を見つけましたが、うまくいかないようです。
$('svg')
.on("mousewheel.zoom", null)
.on("DOMMouseScroll.zoom", null) // disables older versions of Firefox
.on("wheel.zoom", null);
問題は、クリック イベントでマップが再描画されることです。場合によっては、ズーム イベントが初期化されていませんが、スクロールは SVG 要素上でキャプチャされます。スクロールが「キャプチャ」されると、ページがスクロールできなくなります (これは望ましい動作ではありません)。スクロール イベントのキャプチャをプログラムで無効にして SVG をズームする方法はありますか?
D3 はオンザフライでバインドしているようで、バインドを極端に明示的に中断しようとさえしました。
$('.map-container, #map, g, svg, d3, div').off('scroll').unbind('scroll').undelegate('scroll');
$(window).off('scroll').unbind('scroll').undelegate('scroll');
$(document).off('scroll').unbind('scroll').undelegate('scroll');
これは、バインディングなどに関する私の基本的な知識に失敗している可能性があります。あるいは、D3 は非常に回復力のある方法で構築されている可能性があります。
何か案は?(答えがあれば説明してください、これは私にとって興味深いです!)