如何禁用d3.behavior.zoom的双击缩放?

Bra*_*sen 42 javascript d3.js

我不希望d3.behavior.zoom添加在我的图表上双击缩放的功能.如何禁用此行为?

这是一个带有不良行为的JSFiddle.

我没有运气就试过以下.

 d3.behavior.zoom.dblclick = function() {};
Run Code Online (Sandbox Code Playgroud)

mbo*_*ock 96

您可以通过删除缩放行为的dblclick事件侦听器来禁用双击行为.查看代码,您已将缩放行为分配给SVG元素.所以你可以说:

d3.select("svg").on("dblclick.zoom", null);
Run Code Online (Sandbox Code Playgroud)

或者,与注册缩放行为的位置一起:

.call(d3.behavior.zoom().on("zoom", update)).on("dblclick.zoom", null)
Run Code Online (Sandbox Code Playgroud)

您可能还希望将缩放行为向下移动到G元素,而不是将其放在根SVG元素上; 我不确定它在根SVG上是否能正常工作,因为SVG元素不支持transform属性.

  • 其实我搞定了.在*元素上注册了缩放后,您需要添加dblclick侦听器*.感谢这个答案:http://stackoverflow.com/a/25024855 (7认同)
  • 第一行是正确答案 `d3.select("svg").on("dblclick.zoom", null);` (2认同)