2017-01-06 2 views
1

Я использую CSS3 для «скольжения» div вверх и вниз в соответствии с направлением прокрутки. Я использую событие колеса мыши, чтобы отслеживать прокрутку пользователя, и когда пользователь прокручивает вниз div с переходом CSS3. Однако мне нужно изменить чувствительность колеса мыши/трекпада. Теперь, когда я поворачиваю колесо вниз только один «тик», событие уже уволено. На трекпаде (Macbook) только миллиметр движения с двумя пальцами запускает событие, и анимация называется много раз (слишком чувствительная). Мне нужно указать минимальное число поворотов колесика мыши/расстояние между пальцами до двух пальцев, чтобы убедиться, что анимация не запускается быстро.Изменение чувствительности мыши/трекпада с Javascript

Вот код, у меня сейчас:

$leftSide.bind('DOMMouseScroll mousewheel', function(e) { 
    if (scrollStep > 0 || scrollStep < $numberOfItems) { 
     $leftSide.css({ 
      marginTop: scrollStepPixelsString, 
      WebkitTransition: 'margin-top 700ms ease-in-out', 
      MozTransition: 'margin-top 700ms ease-in-out', 
      MsTransition: 'margin-top 700ms ease-in-out', 
      OTransition: 'margin-top 700ms ease-in-out', 
      transition: 'margin-top 700ms ease-in-out' 
     }); 
    } 
}); 

Как можно уменьшить чувствительность колеса мыши и сенсорной панели?

ответ

1

Вы можете попробовать использовать 'debounce function' для задержки выполнения функции для x miliseconds с момента последнего вызова.

+0

Также этот пост содержит много статей по теме: http://stackoverflow.com/questions/7408100/can-i-change-the-scroll-speed-using-css-or-jquery и NiceScroll может быть другим вариантом : http://areaaperta.com/nicescroll/demo.html –

+0

Удивительный ответ. Раньше я использовал debounce и дросселирование, но на этот раз не мог подумать. Благодаря :) –

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