d3缩小Chrome和Firefox之间的差异

Rom*_*n L 5 firefox google-chrome d3.js

在Windows上的最新版Firefox(28.0)中,当应用缩放行为时,如示例所示,单个鼠标滚轮事件会导致变焦变化很大:Chrome中的变化系数为~1.65 vs~1.18.

看一下源代码:

d3_behavior_zoomDelta = function() {
  return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1);
}
Run Code Online (Sandbox Code Playgroud)

Chrome:{deltaMode:0,deltaY:-100} - > delta = 100

Firefox:{deltaMode:1,deltaY:-3} - > delta = 360

这解释了差异,但为什么会发生这种情况呢?这是Firefox还是d3.js问题?

Con*_*nos 5

我相信这是 Firefox 的问题。我通过将缩放限制在其当前值的 10% 以内(并在每次缩放时重置)来解决它:

var zoom = d3.behavior.zoom()
  .on("zoom", redraw); 

function redraw() {
  zoom.scaleExtent([zoom.scale()*0.9, zoom.scale()*1.1]);
  ...
}
Run Code Online (Sandbox Code Playgroud)