Инструменты jQuery с возможностью прокрутки с помощью колесика мыши - прокрутка ОДНОЙ позиции и остановка
Я использую bind / unbind для прокрутки колесика мыши, основываясь на этом ответе SO:
Я туннелирую дерево событий из дельты, чтобы указывать только значения X мышиных колесиков. Все работает хорошо. Проблема, которую я пытаюсь преодолеть: я хочу просто прокрутить ОДНУ панель вперед, затем остановить прокрутку. В настоящее время я отменяю привязку события mousewheel сразу после перемещения, и это фактически останавливает прокрутку ... но отмена привязки события mousewheel также портит страницу. Что мне нужно, так это уметь вычислить самое первое значение deltaX для направления, затем сделать шаг и прекратить прослушивание. Нужно ли искать автопрокрутку для ответов? Привязка / развязка чувствуется клугой, но я не могу понять, как выжить после одного хода, и в то же время иметь возможность прокручивать после того, как этот ход завершен. Вот моя функция колесика мыши:
function mouseHandler(event, delta) {
$('.homeScrollable').bind('mousewheel', mouseHandler);
var deltaX = event.originalEvent.wheelDeltaX;
//console.log(event.originalEvent.wheelDeltaX);
if(deltaX <= 0) {
//move forward 1 screen and stop
scrollapi.move(1);
$('.homeScrollable').unbind('mousewheel', mouseHandler);
} else if(deltaX > 0) {
//move backward 1 screen and stop
scrollapi.move(-1);
$('.homeScrollable').unbind('mousewheel', mouseHandler);
}
event.preventDefault();
// Rebind mousewheel event:
$('.homeScrollable').bind('mousewheel', mouseHandler); };
Я также смотрел на настройку таймера, а-ля:
Плагин jquery mousewheel: как запускать только одну функцию при каждой прокрутке
который казался невероятно многообещающим, но бездействующим. Вот страница плагина для этого парня:http://brandonaaron.net/code/mousewheel/docs
Спасибо за проверку его.