- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
(function(G, D) {
"use strict";
var $ = G.jQuery,
listener;
function addListener(elem, fn) {
function handler(event) {
event = event || G.event;
var dx = event.DeltaX || event.wheelDeltaX || event.detail || 0,
dy = event.DeltaY || event.wheelDeltaY || event.detail || 0;
event.dx = dx === 0 ? 0 : dx / Math.abs(dx);
event.dy = dy === 0 ? 0 : dy / Math.abs(dy);
fn(event);
}
if (elem.addEventListener) {
if (D.hasOwnProperty('onwheel')) { //Modern browsers
listener = "wheel";
} else if (D.hasOwnProperty('onmousewheel')) { //Old browsers
listener = "mousewheel";
} else { //FF<17
listener = "MozMousePixelScroll";
}
elem.addEventListener(listener, handler, false);
} else { //IE<9
elem.attachEvent("onmousewheel", handler);
listener = "onmousewheel";
}
}
function removeListener(elem) {
if (elem.removeEventListener) {
elem.removeEventListener(listener);
} else {
elem.detachEvent(listener);
}
}
$.fn.mousewheel = function(fn) {
return this.each(function() {
addListener(this, fn);
});
};
$.fn.unmousewheel = function(fn) {
return this.each(function() {
removeListener(this, fn, false);
});
};
}(this, document));
Написал плагин для jQuery, который цепляет на элементы обработчик события вращения колесика мыши. Что скажете? Как бы вы написали функцию unmousewheel()?