1、绑定事件和删除事件
const addEvent = (elem, type, handler) => {
if (elem.addEventListener) {
elem.addEventListener(type, handler, false);
}else if (elem.attachEvent) {
elem.attachEvent('on' + type, function(e) {
handler.call(elem, e);
});
}else {
elem['on' + type] = handler;
}
};
const removeEvent = (elem, type, handler) => {
if (elem.addEventListener) {
elem.removeEventListener(type, handler, false);
}else if (elem.attachEvent) {
elem.detachEvent('on' + type, function() {
handler.call(elem);
});
}else {
elem['on' + type] = null;
}
}
2、获取pagex, pageY
**
* 获取pagex, pageY
* @param event
* @returns {{pageX: (*|number), pageY: (*|number)}}
*/
function getPageXY(event) {
let pageX ,pageY;
pageX = event.pageX || (event.clientX + (window.pageXOffset || document.body.scrollLeft || document.documentElement.scrollLeft))
pageY = event.pageY || (event.clientY + (window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop))
return {pageX, pageY};
}
3、获取OffsetX,OffsetY
function getOffsetXY(event) {
let elem = event.target || event.srcElement;
return {
offsetX: event.offsetX || (event.clientX - elem.getBoundingClientRect().left),
offsetY: event.offsetY || (event.clientY - elem.getBoundingClientRect().top)
}
}
4、获取计算样式width
function getStyleWidth(elem) {
let styleObj = window.getComputedStyle ? window.getComputedStyle(elem, null) : elem.currentStyle;
return +styleObj.width.slice(0, -2);
}