Проблема с прокруткой окна
Добрый день!
На странице имеется табличка - "временная шкала", которая лежит в контейнере. На этот контейнер я вешаю обработку на 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 .....), однако почему-то на самом деле прерывания не происходит. Если страница превышает размерами окно, то вместо горизонтального скроллинга "временной шкалы" происходит прокрутка всего окна... В чем я ошибся? |
Тебе не вспытие остановить нужно, а действие по умолчанию: preventDefalut() (returnValue = false для IE)
Кстати проверка onwheel in document не проканает в IE9+ , в нем хоть и есть событие wheel, но вот свойств onwheel не определено. |
Странно, но в обшем-то в IE 9 данный метод работает и никаких ошибок не выдает - там у меня свой закладочный плагин сделан со скроллингом. Хотя возможно свою лепту вносит fancybox, который использует position.fixed...
За preventDefault гранд мерси - запишу на мозговой хард драйв))))) |
рони когда-то давал здесь ссылку на плагин для кроссбраузерного mousewheel
https://github.com/brandonaaron/jquery-mousewheel Я как-то его использовал, удобная штука. Может пригодится. |
BETEPAH, судя по коду, jQuery не используется в проекте.
Хотя посмотреть на реализацию плагина будет полезно. |
Часовой пояс GMT +3, время: 00:58. |