Chrome浏览器滚轮事件用的是mousewheel,滚动值用的是event.wheelDelta Firefox浏览器滚轮事件用的是DOMMouseScroll,滚动值用的是event.detail Firefox的滚动值很小,而且滚动方向相反 综合以上特点,最后封装的兼容代码如下:
//添加鼠标滚轮监听
export function addMouseWheelListener(element, callback) {
//接收字符串,DOM对象,JQuery对象等多种格式
element = TypeModule.toHtmlElement(element);
["mousewheel", "DOMMouseScroll"].forEach(eventType => {
element.addEventListener(eventType, event => {
event = event || window.event;
let dy = event.wheelDelta || event.detail * (-40);
callback(dy);
});
}, true);
}