d3缩小Chrome和Firefox之间的差异

时间:2014-04-16 20:56:13

标签: google-chrome firefox d3.js

在Windows上最新的Firefox(28.0)中,当应用this示例中的缩放行为时,单个鼠标滚轮事件会导致变焦变大:在Chrome中为〜1.65 vs~1.18因子

查看源代码:

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

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

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

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

1 个答案:

答案 0 :(得分:4)

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

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

function redraw() {
  zoom.scaleExtent([zoom.scale()*0.9, zoom.scale()*1.1]);
  ...
}