【问题标题】:Holding Shift prevents mouse wheel zoom in firefox按住 Shift 可防止鼠标滚轮在 Firefox 中放大
【发布时间】:2014-07-10 05:02:38
【问题描述】:

当用户使用鼠标滚轮放大 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 已经为浏览器缩放级别保留。

知道 chrome 中是否已经保留了 shift+鼠标滚轮,或者是否可以在 d3 的未来版本中修复此问题?

【问题讨论】:

  • 你的标题说问题出在 Firefox 上,但其他地方的问题出在 chrome 上??

标签: d3.js


【解决方案1】:

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

如果您查看 src/behavior/zoom.js:327 的 d3 存储库,您会看到该函数使用 d3.event.deltaY 来获取用于更新刻度值的滚轮增量.问题在于,在 Chrome 中,在滚动页面时按住 Shift 键会水平滚动页面,这会设置 deltaX 而不是 deltaY。由于 d3 只检查 deltaY,因此每次按下 Shift 键时都会得到一个 0 值。

很遗憾,目前我没有很好的解决方法。在我的情况下,我可能会修改我们正在使用的 d3 源文件,直到/除非我的修复被应用。也许其他人会有更好的解决方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-03
    • 1970-01-01
    • 2022-11-12
    • 2011-12-11
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    相关资源
    最近更新 更多