Ответ 1
Firefox не распознает "mousewheel" с версии 3. Вместо firefox вы должны использовать "DOMMouseScroll".
проверьте это: http://www.javascriptkit.com/javatutors/onmousewheel.shtml
Пожалуйста, ознакомьтесь с приведенным ниже кодом.
$(this.element).on("mousewheel", this.chartMouseWheel);
chartMouseWheel:function(e) {
if(e.originalEvent.wheelDelta /120 > 0) {
alert('scrolling up !');
}
else{
alert('scrolling down !');
}
if (e.preventDefault)
e.preventDefault();
e.returnValue = false;
},
это событие правильно запускается в IE, chrome и не запускается в Firefox?
Firefox не распознает "mousewheel" с версии 3. Вместо firefox вы должны использовать "DOMMouseScroll".
проверьте это: http://www.javascriptkit.com/javatutors/onmousewheel.shtml
Это 2017 год, и теперь правильный ответ:
$(window).on('wheel', function(event){
// deltaY obviously records vertical scroll, deltaX and deltaZ exist too
if(event.originalEvent.deltaY < 0){
// wheeled up
}
else {
// wheeled down
}
});
Работает с текущими Firefox 51, Chrome 56, IE9 +
Примечание. Значение дельт будет зависеть от браузера и пользовательских настроек.
Использовать событие wheel
. Эта страница также предоставляет полисы для старых браузеров https://developer.mozilla.org/en-US/docs/Web/Events/wheel
Бадри прав, вы должны использовать "DOMMouseScroll" вместо firefox. Дополнение к этому, для delta вам нужно использовать event.originalEvent.detail вместо event.originalEvent.wheelDelta. Для down событие event.originalEvent.detail дает положительное значение, тогда как event.originalEvent.wheelDelta дает отрицательное значение и наоборот.
$(stage.content).on('mousewheel DOMMouseScroll', zoomHelper.zoom);
if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {
if (event.originalEvent.detail > 0) {
//scroll down
delta = 0.2;
} else {
//scroll up
delta = 0;
}
} else {
if (event.originalEvent.wheelDelta < 0) {
//scroll down
delta = 0.2;
} else {
//scroll up
delta = 0;
}
}
JSFiddle (работает в IE 11, Firefox 33 и Chrome 38, я не тестировал другие браузеры): http://jsfiddle.net/rpaul/ckwu7u86/3/
Или просто используйте jquery-mousewheel плагин jQuery.
Это похоже на работу в Safari, Chrome и Firefox (я не тестировал его в IE):
// For Chrome
window.addEventListener('mousewheel', mouseWheelEvent);
// For Firefox
window.addEventListener('DOMMouseScroll', mouseWheelEvent);
function mouseWheelEvent(e) {
var delta = e.wheelDelta ? e.wheelDelta : -e.detail;
console.log(delta);
}