0

我需要检查 html 页面是否位于窗口顶部。

所以,我正在使用这段代码:

$(window).scroll(function(){
   a = ($(window).scrollTop());
   if (a>0) {
      alert('page not in top');
   }
});

但这并没有按预期工作,因为只有在用户停止滚动操作时才应该触发该事件。任何的想法?

4

2 回答 2

1

使用setTimeout

var timeout;

$(window).scroll(function() {
   clearTimeout(timeout);
   timeout = setTimeout(function(){
      a = $(window).scrollTop();
      if ( a > 0 ) {
           alert('page not in top');
      }
   }, 100);
});
于 2013-05-30T00:15:30.653 回答
1

试试这个:

var timer = null;
$(window).addEventListener('scroll', function() {
    if(timer !== null) {
        clearTimeout(timer);        
    }
    timer = setTimeout(function() {
          // do something
    }, 150);
}, false);

或者这个:

    var timer;
    $(window).bind('scroll',function () {
        clearTimeout(timer);
        timer = setTimeout( refresh , 150 );
    });
    var refresh = function () { 
        // do stuff
        console.log('Stopped Scrolling'); 
    };
于 2013-05-30T00:16:02.937 回答