Добрый день!
На странице имеется табличка - "временная шкала", которая лежит в контейнере. На этот контейнер я вешаю обработку на mouseWheel
mouseWheel: function(obj){
var _obj = obj.get(0);
if (_obj.addEventListener) {
if ("onwheel" in document){
_obj.addEventListener("wheel", timeScale._mouseWheel, false);
}
else if ("onmousewheel" in document) {
_obj.addEventListener("mousewheel", timeScale._mouseWheel, false);
}
else {
_obj.addEventListener("MozMousePixelScroll", timeScale._mouseWheel, false);
}
}
else {
_obj.attachEvent('onmousewheel',timeScale._mouseWheel);
}
},
_mouseWheel: function(e){
e = e || window.event;
/*Браузеры крутят колесико мышки в разные стороны, поэтому приведем их в одно направление*/
var ua = navigator.userAgent;
if (ua.indexOf('Opera') > 0 || ua.indexOf('Firefox') > 0) {
ua = 1;
}
else {
ua = -1;
}
var factor = 0;
factor = e.deltaY || e.detail || e.wheelDelta;
factor = (factor > 0 ? -1 : 1) * ua * timeScale.scrollPx;//IE и Chrome - крутят в одну сторону, а Mozilla и Opera - в другую
timeScale.scrollScale(timeScale.scale.parent(),factor);
e.stopPropagation ? e.stopPropagation() : e.cancelBubble = true;
return false;
}
По идее в функции _mouseWheel стоит прерывание всплытия события (e.stopPropagation .....), однако почему-то на самом деле прерывания не происходит. Если страница превышает размерами окно, то вместо горизонтального скроллинга "временной шкалы" происходит прокрутка всего окна... В чем я ошибся?