То, что я пытаюсь сделать, это сделать так, чтобы при прокрутке вверх или вниз она вызывала функцию, которая меняет страницу. У моего тела overflow:hidden
.mousewheel и if statements jquery
Я использую JQuery плагин называется https://github.com/jquery/jquery-mousewheel'>mousewheel
Это мой код:
$('#body').on('mousewheel', function(event) {
if(event.originalEvent.detail > 0 || event.originalEvent.wheelDelta < 0) {
//scroll down
if(document.getElementById('pgcount').innerHTML == 'Page 1') scrollDown(2);
if(document.getElementById('pgcount').innerHTML == 'Page 2') scrollDown(3);
if(document.getElementById('pgcount').innerHTML == 'Page 3') scrollDown(4);
if(document.getElementById('pgcount').innerHTML == 'Page 4') scrollDown(5);
} else {
//scroll up
if(document.getElementById('pgcount').innerHTML == 'Page 2') scrollUp(1);
if(document.getElementById('pgcount').innerHTML == 'Page 3') scrollUp(2);
if(document.getElementById('pgcount').innerHTML == 'Page 4') scrollUp(3);
if(document.getElementById('pgcount').innerHTML == 'Page 5') scrollUp(4);
}
//prevent page fom scrolling
return false;
});
По некоторым причинам она работает, когда прокрутка вверх, но когда вы прокручиваете вниз, она переходит на страницу 5 (последняя). Когда я добавил console.log(document.getElementById('pgcount').innerHTML)
каждому, если заявление для прокрутки вниз он вошел так:
Page 1
Page 2
Page 3
Page 4
Я не понимаю, почему это будет работать прокрутка вверх, но не вниз. Я знаю, что вызываемая функция (scrollDown) не проблема, так как она работает при вызове с консоли.
Заранее спасибо
Прокрутите вниз() не изменяет значение страницы. Он вызывается только при прокрутке вниз, поэтому, если вы находитесь на странице 1 и прокрутите страницу, вы попадете на страницу 2, пока не прокрутите ее снова. –
@BenWelch нет, после вызова 'scrollDown (2)', какова следующая строка кода, который выполняется? Это оператор 'if', который проверяет страницу 2. Когда' scrollDown (2) 'возвращается, вы все еще находитесь в коде обработчика мыши. – Pointy
@MuhammadIrfan из-за упорядочения операторов 'if'. Посмотрите на код. В случае прокрутки первый тест 'if' для страницы 2. Если это текущая страница, то страница будет установлена в 1, а последующие 3' if' теста не удастся. – Pointy