如何为d3.behavior.zoom禁用pan?

ela*_*ell 28 d3.js

这个问题看起来很相似,这一个,但我仍然无法弄清楚是否有可能使用d3.behavior.zoom但没有锅能力.换句话说,我只想使用滚轮放大/缩小.

原因是我希望能够刷上"可缩放"区域.

谢谢!

sel*_*pou 38

假设您已定义缩放行为:

var zoom = d3.behavior.zoom().on('zoom', update);
Run Code Online (Sandbox Code Playgroud)

将缩放行为应用于选择时,可以取消注册其在内部使用的事件侦听器,以检测并响应某些交互.在你的情况下,你想做这样的事情:

selection.call(zoom)
    .on("mousedown.zoom", null)
    .on("touchstart.zoom", null)
    .on("touchmove.zoom", null)
    .on("touchend.zoom", null);
Run Code Online (Sandbox Code Playgroud)

我不确定您是否要删除触摸事件.这样做可能会消除双击缩放.你应该尝试那些.

  • 就我而言,我只是做了:`d3.select('svg')。on('mousedown.zoom',null);` (3认同)
  • 要重新启用平移,只需执行selection.call(zoom); (2认同)