Google chrome Chrome和Firefox之间的d3缩放差异

Google chrome Chrome和Firefox之间的d3缩放差异,google-chrome,firefox,d3.js,Google Chrome,Firefox,D3.js,在Windows(28.0)上的最新Firefox中,当应用缩放行为(如示例所示)时,单个鼠标滚轮事件会导致较大的缩放变化: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:{

在Windows(28.0)上的最新Firefox中,当应用缩放行为(如示例所示)时,单个鼠标滚轮事件会导致较大的缩放变化: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的问题?

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


这在D3 github回购中有报道吗?我不记得我有没有报道过,已经有一段时间了。。
var zoom = d3.behavior.zoom()
  .on("zoom", redraw); 

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