检测页面是否正在滚动移动设备?

时间:2013-09-11 11:55:23

标签: javascript jquery mobile

我可以检测网页当前是否在移动设备中滚动?包括动量滚动?

基本上,我想运行一个函数,但只有在没有滚动的情况下才会运行,比如

if(!scrolling){
    //do stuff
}

1 个答案:

答案 0 :(得分:1)

var scrolling = false;
var endScrolling;

$(window).on("scroll", function() {
    scrolling = true;
    endScrolling = window.setTimeout(function() {
        scrolling = false;
        window.clearTimeout(endScrolling);
    }, 20);
});

基本上这里发生的是:

1)当窗口开始滚动时,“scrolling”设置为true

2)超时会在执行后立即将滚动设置为false,但是:

3)移动Safari在滚动时不执行setTimeout(包括动量)。因此,只有在滚动真正结束时才会首次执行。