在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问题?
答案 0 :(得分:4)
我认为这是一个Firefox问题。我通过将缩放限制在当前值的10%以内(并在每次缩放时重置缩放)来解决这个问题:
var zoom = d3.behavior.zoom()
.on("zoom", redraw);
function redraw() {
zoom.scaleExtent([zoom.scale()*0.9, zoom.scale()*1.1]);
...
}