我试图在用鼠标滚轮
放大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的未来版本中修复?
答案 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源文件,直到/除非我的修复程序被应用。也许其他人会有更好的解决方法。