Прекратить прокрутку вниз после прокрутки вверх - PullRequest
0 голосов
/ 21 декабря 2018

Моя проблема в том, что после быстрой прокрутки вниз с помощью сенсорной панели окно правильно переходит наверх после 300 пикселей, но после этого браузер все еще прокручивает вниз.

Вот пример моегопроблема https://codepen.io/anon/pen/XoMExW

Я пробовал это, но это не сработало

Как временно отключить прокрутку?

$(window).scroll(function(){
if( $(window).scrollTop() >= 300 ){
   $(window).scrollTop(0);
}
});

1 Ответ

0 голосов
/ 21 декабря 2018

Что вы можете сделать, это после каждого события прокрутки добавить setTimeout.Для каждого события прокрутки вы сначала очистите тот, который вы создали в предыдущем событии, и сразу после этого создадите новое.Это будет продолжаться до тех пор, пока вы не достигнете последнего события прокрутки, затем во время этого последнего события прокрутки сработает обратный вызов setTimeout и будет запущен ваш код:

var isScrolling;

$(window).scroll(function() {
    window.clearTimeout(isScrolling);
    isScrolling = setTimeout(function() {
        if ($(window).scrollTop() >= 300) {
            $(window).scrollTop(0);
        }
    }, 100);
});
...