删除双击缩放 D3



我有一个具有缩放/平移功能的精简力定向图:https://bl.ocks.org/anonymous/36b27a0b6f8c485c25995e7c223def3c

这是缩放部分:

var zoomHandler = d3.zoom()
.on("zoom", zoomActions);
zoomHandler(svg);
function zoomActions(){
g.attr("transform", d3.event.transform)
}

我想删除双击的缩放功能,只保留它进行滚动。根据文档和其他问题,我知道我必须在某处包含.on("dblclick.zoom", null)。但是,我不知道将这段代码放在哪里。此外,我不确定我是否正确使用"svg"和"g"对我的元素进行分组,这可能会导致问题。我已经看到了与这个问题相关的其他问题,但无法将它们融入我的情况。

我应该如何补救?谢谢大家可能提出的任何见解!

由于您正在对 svg 选择调用缩放函数...

zoomHandler(svg);

。您必须将侦听器添加到同一选择中:

svg.on("dblclick.zoom", null)

以下是您更新的 bl.ocks: https://bl.ocks.org/anonymous/42745557a8602692d9dc98c33a327d29

var zoomHandler = d3.zoom()
.on("zoom", zoomActions);
zoomHandler(svg);
svg.call("zoom").on("dblclick.zoom", null);

function zoomActions(){
g.attr("transform", d3.event.transform)
}

最新更新