【问题标题】:why does mousewheel work in chrome but no in firefox为什么鼠标滚轮在 chrome 中可以工作,但在 Firefox 中却不行
【发布时间】:2013-10-14 23:51:59
【问题描述】:

我目前正在使用 CSS 通过鼠标滚轮上下滚动弹出页面,但我无法让它在 FireFox 中工作。由于某种原因,它目前在 Chrome 中工作,只是使用 overflow-x:hidden;和溢出-y:auto;。

我尝试使用 jQuery Mousewheel 插件 jquery.mousewheel.min.js 让页面在没有滚动条的情况下向上和向下滚动,但是我无法让它工作。 Firefox 是否还需要使用鼠标滚轮来上下滚动页面? CSS、Javascript 还是 jQuery?

HTML

<div class="test">
   <div class="inner">blah blah blah
   </div>
</div>

CSS

.test{
display:inline-block;
overflow-x:hidden;
overflow-y:auto;
margin:0 auto;
}

.inner{
float:left;
overflow-x:hidden;
overflow-y:auto;
}

【问题讨论】:

  • 邮政编码,也许我们可以帮忙
  • 您可以创建一个jsfiddle.net

标签: javascript jquery css


【解决方案1】:

如果您说的是在纯 JavaScript 中处理鼠标滚轮事件,我相信 Firefox 有一个不同的名称:DOMMouseScroll 所以要普遍捕获它,您可以执行以下操作:

if (document.addEventListener) {
    document.addEventListener("mousewheel", MouseWheelHandler, false);
    document.addEventListener("DOMMouseScroll", MouseWheelHandler, false);
}
else {
    document.attachEvent("onmousewheel", MouseWheelHandler);
}   

function MouseWheelHandler(e) {

    var e = window.event || e;
    var delta = e.wheelDelta

    if (delta < 0) {
        // Do stuff when wheel is scrolled down
    } else {
        // Do stuff when wheel is scrolled up    
    }
}

【讨论】:

    【解决方案2】:

    您提到您曾尝试使用 jQuery 鼠标滚轮插件,但您没有在帖子中提供任何 JavaScript。您是否尝试以编程方式(使用 DOM 事件侦听器)滚动元素?如果是这样,请注意 Chrome 最近才添加了对标准“滚轮”事件 (https://code.google.com/p/chromium/issues/detail?id=227454) 的支持,因此您可能必须使用非标准“鼠标滚轮”事件。

    【讨论】:

      猜你喜欢
      • 2016-02-28
      • 2011-01-28
      • 2014-11-30
      • 1970-01-01
      • 2012-08-13
      • 1970-01-01
      • 1970-01-01
      • 2017-03-12
      • 1970-01-01
      相关资源
      最近更新 更多