jQuery禁用滚动在Firefox中不起作用

时间:2016-01-28 09:37:04

标签: javascript jquery

我在其他项目中使用此代码,它工作正常。我不知道我的代码有什么问题。它适用于Chrome,但不适用于Firefox。

这是我的代码:

$('body').on({
  'mousewheel': function(e) {
    e.preventDefault();
    e.stopPropagation();
  }
});
body {
  height: 5000px;
}
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>

示例jsFiddle

我项目中的jQuery版本是1.11.3。

3 个答案:

答案 0 :(得分:3)

你可以采用CSS方法:

body {
    max-height: 100%;
    overflow: hidden;
}

或者这就是我在Firefox中的工作:

document.addEventListener('DOMMouseScroll', function(e){
    e.stopPropagation();
    e.preventDefault();
    e.cancelBubble = false;
    return false;
}, false);

你可以在这里看到我的例子: https://jsfiddle.net/qn75a76q/1/

答案 1 :(得分:3)

有些浏览器默认情况下“滚动溢出”不在主体上。 Instand它在html或文档上。例如,请尝试$('html')$(document)。这可能会有所帮助

答案 2 :(得分:2)

我从另一个答案中引用了这个:

  

Firefox无法识别&#34; mousewheel&#34;从版本3开始。你应该使用   &#34; DOMMouseScroll&#34;而不是火狐。

     

检查一下:http://www.javascriptkit.com/javatutors/onmousewheel.shtml

原始答案:Mousewheel event not triggered in Firefox