滚轮事件的防冒泡、阻止默认行为

最近做一个项目,需要滚动切换图片,但是要求不能滚动页面,查阅了很多资料,最终得以解决。 分享一下其中的阻止鼠标滚轮默认事件的片段代码

//用firefox变量表示火狐代理
var firefox = navigator.userAgent.indexOf('Firefox') != -1;
function MouseWheel(e){ //阻止事件冒泡和默认行为的完整兼容性代码
    e = e||window.event;
    if (e.stopPropagation) { //这是取消冒泡
        e.stopPropagation();
    } else{
        e.cancelBubble = true;
    };
    if (e.preventDefault) {//这是取消默认行为,要弄清楚取消默认行为和冒泡不是一回事
        e.preventDefault();
    } else{
        e.returnValue = false;
    };
}
var con = document.getElementById('content');
//要在content内部滚动,而页面不受影响,所以这里获取要滚动的对象

//如果是ff就绑定DOMMouseScroll事件,其他浏览器就用onmousewheel事件触发
firefox ? con.addEventListener('DOMMouseScroll',MouseWheel,false) : (con.onmousewheel = MouseWheel);

tips:
这里主要是要搞明白冒泡和默认行为不是同一回事;
对于鼠标滚轮事件,不同浏览器监听的方法是不一样的

猜你喜欢

转载自blog.csdn.net/bigbear00007/article/details/80118016