use wheel event on new versions of Firefox

fixes #1466
This commit is contained in:
nightwing 2013-06-30 22:07:23 +04:00
commit f6f3425cce

View file

@ -141,9 +141,9 @@ else {
} }
exports.addMouseWheelListener = function(el, callback) { exports.addMouseWheelListener = function(el, callback) {
var factor = 8; if ("onmousewheel" in el) {
var listener = function(e) { var factor = 8;
if (e.wheelDelta !== undefined) { exports.addListener(el, "DOMMouseScroll", function(e) {
if (e.wheelDeltaX !== undefined) { if (e.wheelDeltaX !== undefined) {
e.wheelX = -e.wheelDeltaX / factor; e.wheelX = -e.wheelDeltaX / factor;
e.wheelY = -e.wheelDeltaY / factor; e.wheelY = -e.wheelDeltaY / factor;
@ -151,8 +151,16 @@ exports.addMouseWheelListener = function(el, callback) {
e.wheelX = 0; e.wheelX = 0;
e.wheelY = -e.wheelDelta / factor; e.wheelY = -e.wheelDelta / factor;
} }
} callback(e);
else { });
} else if ("onwheel" in el) {
exports.addListener(el, "wheel", function(e) {
e.wheelX = (e.deltaX || 0) * 5;
e.wheelY = (e.deltaY || 0) * 5;
callback(e);
});
} else {
exports.addListener(el, "DOMMouseScroll", function(e) {
if (e.axis && e.axis == e.HORIZONTAL_AXIS) { if (e.axis && e.axis == e.HORIZONTAL_AXIS) {
e.wheelX = (e.detail || 0) * 5; e.wheelX = (e.detail || 0) * 5;
e.wheelY = 0; e.wheelY = 0;
@ -160,11 +168,9 @@ exports.addMouseWheelListener = function(el, callback) {
e.wheelX = 0; e.wheelX = 0;
e.wheelY = (e.detail || 0) * 5; e.wheelY = (e.detail || 0) * 5;
} }
} callback(e);
callback(e); });
}; }
exports.addListener(el, "DOMMouseScroll", listener);
exports.addListener(el, "mousewheel", listener);
}; };
exports.addMultiMouseDownListener = function(el, timeouts, eventHandler, callbackName) { exports.addMultiMouseDownListener = function(el, timeouts, eventHandler, callbackName) {