2016-02-15 5 views
1

Привет, я делаю часть js на своем веб-сайте и имею проблемы с прокруткой в ​​руке.Неверное определение положения прокрутки JQuery Mousewheel

Это мой код, как я обнаруживаю прокрутку вверх или вниз.

$(window).on({ 
    'mousewheel': function (e) { 
     e.preventDefault(); 
     e.stopPropagation(); 
    } 
}); 


$(window).on('mousewheel DOMMouseScroll', function (event) { 
    event.preventDefault(); 
    var delta = event.originalEvent.wheelDelta || -event.originalEvent.detail; 

    if(delta > 0) { 
     //up 
    }else { 
     //down 
    } 
}); 

Я не понимаю, что не так. Он работает как случайный, я прокручиваю его вниз, или я прокручиваю его вниз, или он работает нормально. Могу ли я обнаружить позицию с другим решением без плагина. Она также работает с ума, когда я прокручиваю его с сенсорной панели не мыши свитка

Спасибо за вас время

+0

Можете ли вы создать пример на jsfiddle.net? Это поможет. – Andrey

+0

О, я забыл, что он работает сумасшедшим на сенсорной панели macbook и волшебной мышью в окнах, он отлично работает –

ответ

1

, который работает: https://jsfiddle.net/fvd3jqdq/2/

$(window).bind('mousewheel DOMMouseScroll', function(event) 
{ 
    if (event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0) { 
     //UP 
    } 
    else{ 
     //DOWN 
    } 
}); 
+0

O Я забыл, что он работает сумасшедшим на тачпада macbook и волшебной мыши в окнах, он отлично работает –

+0

извините? где это не работает? –

+0

при прокрутке с помощью волшебной мыши и сенсорной панели macbook –

1

Этот ответ может быть интересно для горизонтальной прокрутки

$(window).bind('mousewheel DOMMouseScroll', function(event) 
    { 
     var delta_one = event.originalEvent.wheelDelta; 
     var delta_two = event.originalEvent.detail; 
     var mydelta = delta_one || delta_two; 
     var left = $('.yourDiv').scrollLeft(); 
     $('.yourDiv').scrollLeft(left + mydelta);  
    }); 
Смежные вопросы