按住Shift可防止鼠标滚轮在Firefox中放大

时间:2014-05-02 14:42:34

标签: d3.js

我试图在用鼠标滚轮

放大d3图表时为用户提供3个选项

d3.behavior.zoom():

缩放x和y:无修饰符

仅限缩放x:按住Alt

仅限缩放y:按住Shift键

这在firefox中工作正常,但是当按住shift时,chrome阻止我的缩放工作。在d3缩放示例中可以看到同样的问题,如果按住shift键,鼠标滚轮缩放不再有效:

http://bl.ocks.org/mbostock/3892919

我会尝试使用Ctrl而不是shift,但ctrl已经为Browser Zoom Level保留了。

有没有想过如果已经在chrome中保留了shift +鼠标滚轮,或者这个东西是否可以在d3的未来版本中修复?

1 个答案:

答案 0 :(得分:2)

我今天早些时候遇到了同样的问题。当我调查时,我发现这是一个" bug"在d3缩放行为。您可以在此处找到我的拉取请求:https://github.com/mbostock/d3/pull/1938

如果你在src / behavior / zoom.js:327查看d3 repo,你会看到该函数正在使用d3.event.deltaY来获取滚轮增量,用于更新规模价值。问题是,在Chrome中,在滚动时按住Shift键水平滚动页面,这会设置deltaX而不是deltaY。由于d3仅检查deltaY,因此每次按下Shift键都会得到0值。

不幸的是,我现在没有为你做好工作。在我的情况下,我可以修改我们使用的d3源文件,直到/除非我的修复程序被应用。也许其他人会有更好的解决方法。