鼠标事件封装
const MOUSE = {
getEvent: function (e) {
return e || window.event;
},
getTarget: function (e) {
return this.getEvent(e).target || this.getEvent(e).srcElement;
},
getClientX: function (e) {
return this.getEvent(e).clientX;
},
getClientY: function (e) {
return this.getEvent(e).clientY;
},
getScrollLeft: function () {
return document.documentElement.scrollLeft ||
window.pageXOffset ||
document.body.scrollLeft;
},
getScrollTop: function () {
return document.documentElement.scrollTop ||
window.pageYOffset ||
document.body.scrollTop;
},
getPageX: function (e) {
return (this.getEvent(e).pageX) ? (this.getEvent(e).pageX) : (this.getClientX(e) + this.getScrollLeft());
},
getPageY: function (e) {
return (this.getEvent(e).pageY) ? (this.getEvent(e).pageY) : (this.getClientY(e) + this.getScrollTop());
}
};
事件绑定封装
const EventUtil = {
addHandler(element, type, handler, bubble = false) {
if (element.addEventListener) {
element.addEventListener(type, handler, bubble);
} else if (element.attachEvent) {
element.attachEvent('on' + type, handler);
} else {
element['on' + type] = handler;
}
},
removeHandler(element, type, handler,) {
console.log(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;
}
},
getEvent(event) {
return event ? event : window.event;
},
getTarget(event) {
return event.target || event.srcElement;
},
preventDefault(event) {
if (event.preventDefault) {
return event.preventDefault();
} else {
return event.returnValue = false;
}
},
stopProPagation(event) {
if (event.stopProPagation) {
return event.stopProPagation();
} else {
return event.cancelBubble = true;
}
}
}