Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.10.2013, 15:55
Профессор
Отправить личное сообщение для demoniqus Посмотреть профиль Найти все сообщения от demoniqus
 
Регистрация: 28.05.2008
Сообщений: 181

Проблема с прокруткой окна
Добрый день!

На странице имеется табличка - "временная шкала", которая лежит в контейнере. На этот контейнер я вешаю обработку на 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 .....), однако почему-то на самом деле прерывания не происходит. Если страница превышает размерами окно, то вместо горизонтального скроллинга "временной шкалы" происходит прокрутка всего окна... В чем я ошибся?
Ответить с цитированием
  #2 (permalink)  
Старый 18.10.2013, 17:05
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Тебе не вспытие остановить нужно, а действие по умолчанию: preventDefalut() (returnValue = false для IE)

Кстати проверка onwheel in document не проканает в IE9+ , в нем хоть и есть событие wheel, но вот свойств onwheel не определено.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 18.10.2013, 18:01
Профессор
Отправить личное сообщение для demoniqus Посмотреть профиль Найти все сообщения от demoniqus
 
Регистрация: 28.05.2008
Сообщений: 181

Странно, но в обшем-то в IE 9 данный метод работает и никаких ошибок не выдает - там у меня свой закладочный плагин сделан со скроллингом. Хотя возможно свою лепту вносит fancybox, который использует position.fixed...
За preventDefault гранд мерси - запишу на мозговой хард драйв)))))
Ответить с цитированием
  #4 (permalink)  
Старый 19.10.2013, 11:01
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

рони когда-то давал здесь ссылку на плагин для кроссбраузерного mousewheel
https://github.com/brandonaaron/jquery-mousewheel
Я как-то его использовал, удобная штука. Может пригодится.
Ответить с цитированием
  #5 (permalink)  
Старый 19.10.2013, 14:36
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

BETEPAH, судя по коду, jQuery не используется в проекте.
Хотя посмотреть на реализацию плагина будет полезно.
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с новой вкладкой вместо нового окна в IE 9 javascript_pupil Общие вопросы Javascript 4 03.03.2012 19:42
JQuery Tolls Scrollable проблема с циклической прокруткой sniffysko jQuery 5 06.10.2011 15:22
Плавное открытие окна. Flashton Элементы интерфейса 3 20.10.2010 16:00
Проблема с draggable в div-e с прокруткой. sergvk jQuery 2 18.03.2009 12:56
Проблема закрытия окна (window.close()) в Mozilla и FireFox Гость AJAX и COMET 4 06.11.2008 19:22