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

本文为工具方法,提供简单但常用的js方法函数。


方法代码

//用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:
这里主要是要搞明白冒泡和默认行为不是同一回事;
对于鼠标滚轮事件,不同浏览器监听的方法是不一样的

想了解更多关于事件冒泡和默认事件的内容,请阅读:《阻止事件冒泡(event.stopPropagation())/阻止默认事件(event.preventDefault())》

你可能感兴趣的:(Javascript,滚轮事件的防冒泡,阻止默认行为)