addEventListener兼容各大浏览器封装
封装:addEvent.js
/**
* element 要绑定事件的对象,及HTML节点。
* type 事件名称,attachEvent监听的事件前边的加上“on”,比如“onclick”和“onmouseover”,addEventListener与之相反。
* listener 要绑定的事件监听函数
*/
const addEvent = function({element, type, callback}) {
if (element.addEventListener) { // 支持使用 addEventListener()
if (type.slice(0,2) === "on") // 以 "on" 开头,不需要,则去掉
type = type.slice(2);
element.addEventListener(type, callback);
} else if (element.attachEvent) { // 支持使用 attachEvent()
if (type.slice(0, 2) !== "on") // 没有以 "on" 开头,需要,则加上
type = "on" + type;
element.attachEvent(type, callback);
}else{
type.slice(0, 2) !== "on" ? element['on'+ type] = callback : element[type] = callback;
}
}
export default addEvent;
其他js引入
import addEvent from "@/public/js/addEvent"
addEvent({
element: window,
type: 'scroll',
callback: debounce(buriedPoint, 1000) // or buriedPoint
}); //滚动事件