/** * 简易的事件添加方法 */ define(function(require, exports, module) { ???exports.addEvent = (function(window, undefined) { ???????????????var _eventCompat = function(event) { ???????????var type = event.type; ???????????if (type == ‘DOMMouseScroll‘ || type == ‘mousewheel‘) { ???????????????event.delta = (event.wheelDelta) ? event.wheelDelta / 120 : -(event.detail || 0) / 3; ???????????} ???????????//alert(event.delta); ???????????if (event.srcElement && !event.target) { ???????????????event.target = event.srcElement; ???????????????} ???????????if (!event.preventDefault && event.returnValue !== undefined) { ???????????????event.preventDefault = function() { ???????????????????event.returnValue = false; ???????????????}; ???????????} ???????????/* ???????????????......其他一些兼容性处理 */ ???????????return event; ???????}; ???????if (window.addEventListener) { ???????????return function(el, type, fn, capture) { ???????????????if (type === "mousewheel" && document.mozFullScreen !== undefined) { ???????????????????type = "DOMMouseScroll"; ???????????????} ???????????????el.addEventListener(type, function(event) { ???????????????????fn.call(this, _eventCompat(event)); ???????????????}, capture || false); ???????????} ???????} else if (window.attachEvent) { ???????????return function(el, type, fn, capture) { ???????????????el.attachEvent("on" + type, function(event) { ???????????????????event = event || window.event; ???????????????????fn.call(el, _eventCompat(event)); ???????????????????}); ???????????} ???????} ???????return function() {}; ???????})(window); ???????});
于是,我们就可以很从容使用mousewheel
事件了。例如:
addEvent(dom, "mousewheel", function(event) { ???if (event.delta < 0) { alert("鼠标向上滚了!"); }});
js滚轮事件兼容写法
原文地址:https://www.cnblogs.com/holy-amy/p/9146657.html