滚动时中断jquery函数

时间:2015-07-16 13:28:47

标签: jquery

我有一个jquery函数,first(),我在页面加载时运行它来做一个图像旋转木马。当用户向下滚动时,我希望该功能暂停 - 理想情况下,但不一定 - 在您向后滚动到页面顶部时恢复。

我尝试过各种各样的事情,包括:

$(document).ready(function first(){
etc
});


$(window).scroll(function(){    
if ($(window).scrollTop()==0){
first()
}
else {
second() 
}
});

其中second()只在旋转木马中显示一个图像(称之为A)。但是,这只是将图像A插入到序列中,直到下一个轮播转换 - 大概是因为我有第一个()从页面加载运行而且它没有停止。我怎么能暂停呢?谢谢!

1 个答案:

答案 0 :(得分:0)

我能想到的最好的解决方案是使用日期对象基本上暂停该函数n秒。我希望这有帮助

https://jsfiddle.net/8r87en6t/1/

var counter = $('#count'),
    pause = new Date();

//function to run continuously
function increment() {
    var now = new Date();
    setTimeout(function () {
        if (now > pause) {
            var current = parseInt(counter.text());
            counter.text(current += 1);
        }
        increment();
    }, 100);
};

//kick it off intially
increment();

//scroll watch
$(document).on('scroll', function () {
    pause = new Date();
    pause.setSeconds(new Date().getSeconds() + 2);
});