Обнаружение конца / конца прокрутки

Я хотел бы определить, когда пользователь прекратил прокручивать страницу / элемент. Это может быть непросто, так как недавние усовершенствования в поведении прокрутки OSX создают этот новый эффект инерции. Произошло ли событие?

Единственное другое решение, которое я могу придумать, - это использовать интервал для определения, когда позиция прокрутки страницы / элемента больше не изменяется, например:

var element     = $( el );
var previous    = element.scrollLeft();
var current;

element.scroll( function(event)
{
    current = element.scrollLeft();

    if ( current === previous )
    {
        // user has stopped scrolling
    }

    previous    = current;
});

1 ответ

Взгляните на это, его jquery, и он хорошо работает для меня, надеюсь, что он будет работать для вас.

Также здесь есть другой код события прокрутки.

Это может быть полезно.

// Setup isScrolling variable
var isScrolling;

// Listen for scroll events
window.addEventListener('scroll', function ( event ) {

    // Clear our timeout throughout the scroll
    window.clearTimeout( isScrolling );

    // Set a timeout to run after scrolling ends
    isScrolling = setTimeout(function() {

        // Run the callback
        console.log( 'Scrolling has stopped.' );

    }, 66);

}, false);
Другие вопросы по тегам