2013-10-25 2 views
0

У меня проблема с прокруткой сенсорной панели. Вот как выглядит мой сайт: click. Вы можете перемещаться здесь, используя стрелки вверх/вниз, меню и колесико мыши. Все отлично, за исключением прокрутки с помощью сенсорной панели. Когда вы это делаете, это интерпретируется так же, как несколько прокруток колеса мыши. Таким образом, вы не переходите от верхнего к второму экрану, а к последнему. Я думал об этом и моих решениях:Проблемы с прокруткой сенсорной панели jQuery

  • обнаружить направление прокрутки
  • прокрутку на экран следующий/предыдущей
  • остановка прокрутки

Но я не имею ни малейшего представления, как «остановить прокрутку». Может кто-нибудь мне помочь? :)

ответ

0

Хорошо, я понял, как это сделать. Возможно, это не лучший способ, но он работает. Код:

 scrollTimes ={ 
      up : 0, 
      down : 0 
     }; 

     $('body').bind('DOMMouseScroll', function(e){ 
      if(e.originalEvent.detail > 0) { 
       scrollTimes.down++; 
       if(scrollTimes.down === 1) { 
        api.next(2000); 
       } 
      } 
      else { 
       scrollTimes.up++; 
       if(scrollTimes.up === 1) { 
        api.prev(2000); 
       } 
      } 

      setTimeout(function() { scrollTimes = { up : 0, down : 0};}, 2000); 

      return false; 
     }); 

     $('body').bind('mousewheel', function(e){ 
      if(e.originalEvent.wheelDelta < 0) { 
       scrollTimes.down++; 
       if(scrollTimes.down === 1) { 
        api.next(2000); 
       } 
      } 
      else { 
       scrollTimes.up++; 
       if(scrollTimes.up === 1) { 
        api.prev(2000); 
       } 
      } 

      setTimeout(function() { scrollTimes = { up : 0, down : 0};}, 2000); 

      return false; 
     }); 

Я установил время в SetTimeout до 2000, потому что это время прокрутки к следующему экрану/предыдущая :)

Смежные вопросы