d3.js'mousewheel'事件不适用于Firefox(仅适用于Chrome,Safari和IE浏览器)

时间:2013-07-17 01:15:27

标签: firefox d3.js

'mousewheel.zoom'事件('d3.js')在Firefox浏览器上不起作用(我得到了最新版本的FF)。

这是我用来从我的地图中移除MOUSEWHEEL EVENT的一小段代码:

function draw_data_center(file_name){

d3.json(file_name, function(json) {

  d3.select("#div_data_center svg").remove();

  vis = d3.select("#div_data_center").append("svg")

      .attr("width", $("#div_data_center").width())

      .attr("height", $("#div_data_center").height())

      .attr("pointer-events", "all")

      .append('svg:g')

      .call(zoom.on("zoom", redraw))

      .on("mousewheel.zoom", null)  //in this line of code I removed the 'mousewheel' functionality BUT it doesn't work in Firefox browser (the other browsers work correctly)

      .on("click.zoom", null)

      .on("touchstart.zoom", null)

      .append('svg:g').......(etc...ect)

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:3)

我不知道你是否已经解决了问题,但在找到答案时我偶然发现了你的页面。

我发现很多文档都说明,对于Firefox,将“DOMMouseScroll.zoom”设置为null可以解决问题。但是,看起来FireFox已经改变了它们检测滚轮的方式。以下是您修改的代码,以包含修复:

vis = d3.select("#div_data_center").append("svg")
      .on("mousewheel.zoom", null)
      .on("DOMMouseScroll.zoom", null) // disables older versions of Firefox
      .on("wheel.zoom", null) // disables newer versions of Firefox