Firefox中的window.onmousewheel

ოთო*_*აძე 10 javascript firefox jquery mousewheel

当我单击文档时,此代码禁用鼠标滚动功能.

$(document).on("click", function () {
    window.onmousewheel = function (e) {
        e.preventDefault();
    }
});
Run Code Online (Sandbox Code Playgroud)

但是,这适用于除Firefox以外的所有浏览器.请告诉我,如何将此代码作为跨浏览器?

Esa*_*ija 15

Firefox不支持.onmousewheel,您必须使用该DOMMouseScroll事件:

$(document).on( "mousewheel DOMMouseScroll", function(e){
    e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)


lon*_*day 6

Firefox不支持onmousewheel此事件的名称.您需要使用该DOMMouseScroll事件来完成此操作.

要检测是否onmousewheel支持,您可以执行以下操作:

var cancelscroll = function(e) {
    e.preventDefault();
};

if ("onmousewheel" in document) {
    document.onmousewheel = cancelscroll;
} else {
    document.addEventListener('DOMMouseScroll', cancelscroll, false);
}
Run Code Online (Sandbox Code Playgroud)

请注意,您不需要在DOM就绪时执行此操作:文档始终可用于绑定,因此您可以立即执行此操作.


您询问如何在每种情况下删除事件侦听器.一个类似的条件将成功:

if ("onmousewheel" in document) {
    document.onmousewheel = function() {};
} else {
    document.removeEventListener('DOMMouseScroll', cancelscroll, false);
}
Run Code Online (Sandbox Code Playgroud)