检测滚动完成/结束(Detecting scroll finish/end)

2019-09-17 15:36发布

我想,当用户停止滚动页面/元素检测。 这可能是棘手,因为最近增强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;
});

Answer 1:

看看这个 ,它的jQuery的,对于我来说工作良好,希望能为你工作。

也有在其他滚动事件代码在这里 。



Answer 2:

这可能是有用的。

// 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);


文章来源: Detecting scroll finish/end