用户滚动到顶部并在那里停留一段时间

时间:2012-10-25 17:59:07

标签: jquery scrolltop

我想使用jQuery

  • 检测用户是否已滚动到页面顶部并
  • 在那里停留一段时间。

我设法得到了第一点使用下面的代码,但没有关于第二点的线索。

$(window).scroll(function() {
   if($(window).scrollTop()  == 0) {
   // do something
   }
});

4 个答案:

答案 0 :(得分:1)

所以基本上你可以做一个setTimeout,然后再次滚动时清除超时。例如:

var timer;

$(window).scroll(function() {
  if($(this).scrollTop() === 0) {
    timer = setTimeout( doSomething, 2000 );
  } else {
    clearTimeout(timer);
  }
});

var doSomething = function(){
  alert('I just sat at the top for two seconds!');
};

工作示例:http://jsfiddle.net/dXRhb/2/

答案 1 :(得分:1)

如果用户向下滚动页面,则

cleartimeout。否则它将在1000毫秒后调用函数(您可以根据您的要求进行设置)。

var c;
$(window).scroll(function() {
 if($(window).scrollTop()  == 0) {
    c = setTimeout(function(){
       // do stuff
     }, 1000);
 }
 else{
     clearTimeout(c);
  }
});

答案 2 :(得分:0)

var myTimer; // Global variable

$(window).scroll(function() 
{
  if($(window).scrollTop()==0) 
  {
      myTimer = setTimeout(function() { 
          /* what you want to happen goes here */
      }, 
      1000) // Time in milliseconds
  } 
  else 
  {
    clearTimeout(myTimer);
  }
});

答案 3 :(得分:0)

没有全局变量怎么做?

$(window).on('scroll', function() {
 if ($(this).scrollTop() === 0) {
    $(this).data('scrollTimer', 
        setTimeout(function(){
            // do stuff
        }, 1000)
    );
 }
 else{
     clearTimeout($(this).data('scrollTimer'));
  }
});