如何捕获和停止onMouseWheel事件在其他地方处理

时间:2012-12-29 15:28:59

标签: javascript html

我想抓住整个页面的onMouseWheel事件(对于我正在进行自定义滚动的上下文),但需要停止处理它的页面上的所有其他内容。怎么可以这样做?

提前致谢。

2 个答案:

答案 0 :(得分:2)

你应该致电

event.preventDefault();

处理完事件后。

像这样:

window.addEventListener("onMouseWheel", function(event) {
    // process the event for custom scrolling

    event.preventDefault();
    event.stopPropagation();
}, true);

答案 1 :(得分:0)

你可以在jquery中这样做:

$(function(){
    $('*:not(body)').on('mousewheel',function(e){
        e.preventDefault();
        e.stopPropagation();
    });
});

使用纯javascript的替代解决方案:

var ele = document.querySelectorAll('*:not(body)');
ele.forEach(function(i){
    ele[i].addEventListener('mousewheel',function(e){
        e.preventDefault();
        e.stopPropagation();
    },false);
});