检测窗口和div上的滚动停止

时间:2015-04-22 20:32:05

标签: jquery

我有溢出的div:滚动,我想在用户停止在页面上滚动时加上一个额外的div(加上超时)。 这意味着我需要检测用户是否在其中一个div和整个页面上停止滚动 - $(window)。

如果用户再次滚动,则应停止淡入

$(window).scroll(function() {   
  $('#extra').stop().fadeOut(30, "linear" );
});     

我目前使用此代码:http://jsfiddle.net/wtRrV/219/

$.fn.scrollStopped = function(callback) {    
  var $this = $(this), self = this;

  $this.scroll(function(){                  
    if ($this.data('scrollTimeout')) {
      clearTimeout($this.data('scrollTimeout'));
    }

    $this.data('scrollTimeout', setTimeout(callback,500,self));
  });
};

$('#div1, #div1').scrollStopped(function()
  $('#extra').delay(3000).fadeIn(2000, "linear" );
});

我目前的基本问题是:当用户停止在其中一个div中滚动时,如何将这两个选择器 - $('#div1, #div1') - 与$(window)结合起来启动淡入和/或在整个页面上。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

使用.add()

var combined = $(window).add('#div1');

combined.scrollStopped(function()
  $('#extra').delay(3000).fadeIn(2000, "linear" );
});

jsfiddle