Skip to content

Latest commit

 

History

History
73 lines (64 loc) · 2.09 KB

浏览器事件对象系统.md

File metadata and controls

73 lines (64 loc) · 2.09 KB
var EventUtil = {
    getEvent: function(event) {
        return event ? event : window.event;
    },

    //获取事件对象
    getTarget: function(event) {
        event = this.getEvent();
        return event.target || event.srcElement;
    },

    //添加事件
    addHandler: function(element, type, handler) {
        if(element.addEventListener) {
            element.addEventListener(type, handler, false);
        } else if(element.attachEvent) {
            element.attachEvent("on" + type, handler);
        } else {
            element["on" + type] = handler;
        }
    },

    //移除事件
    removeHandler: function(element, type, handler) {
        if(element.removeEventListener) {
            element.removeEventListener(type, handler, false);
        } else if(element.detachEvent) {
            element.detachEvent("on" + type, handler);
        } else {
            element["on" + type] = null;
        }
    },

    //阻止默认事件
    preventDefault: function(event) {
        event = this.getEvent();
        if(event.preventDefault) {
            event.preventDefault();
        } else {
            event.returnValue = false;
        }
    },

    //阻止冒泡
    stopPropagation: function(event) {
        event = this.getEvent();
        if(event.stopPropagation) {
            event.stopPropagation();
        } else {
            event.cancelBubble = true;
        }
    },

    //获取当前位置的X轴坐标
    getPageX: function(event) {
        event = this.getEvent(event);
        return typeof event.pageX === 'undefined' ? (event.clientX + (document.body.scrollLeft || document.documentElement.scrollLeft)) : event.pageX;
    },

    //获取当前位置的Y轴坐标
    getPageY: function(event) {
        event = this.getEvent(event);
        return typeof event.pageY === 'undefined' ? (event.clientY + (document.body.scrollTop || document.documentElement.scrollTop)) : event.pageX;
    },
    
    //获取页面滚动高度
    getScrollTop: function(){
        return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;;
    }

};