jQuery:如何确定div向下滚动

glm*_*ndr 5 jquery scroll

我有一个定义高度的div,和overflow:scroll;.它的内容太长,所以滚动条出现.

现在为ichy部分.它的一些内部HTML总是奇怪地出现(确切地说,是tableFilter插件生成的表的页脚).我想让这个页脚在不需要时消失(它实际上出现在包含<div>的边框之外).我决心使它消失,但设置其z-index-1000.但是我希望在包含<div>完全向下滚动时显示它.

我怎么知道用户已在底部滚动?


使用从下面的答案的帮助下,我使用的scrollTop属性,但之间的差异scrollTop,并innerHeight为滚动条加上一些不明身份的三角洲的大小.在Windows下的大多数浏览器中,滚动条高16像素,但我在Firefox中有17个差异,在IE中有20个差异,我的<div>内容的边框似乎变大了.

那里给出了一种计算滚动条大小的方法(实际上是两种方式......).

小智 11

您需要将div高度与scrollTop位置和元素高度进行比较.

$(div).scroll(function(){ 
  if(isScrollBottom()){ 
    //scroll is at the bottom 
    //do something... 
  } 
}); 

function isScrollBottom() { 
  var elementHeight = $(element).height(); 
  var scrollPosition = $(div).height() + $(div).scrollTop(); 
  return (elementHeight == scrollPosition); 
} 
Run Code Online (Sandbox Code Playgroud)

  • 不是那么简单,取决于操作系统上使用的主题. (2认同)