我如何使用JQuery来检查一个div是否一直滚动到底部?

我有一个溢出的div:滚动。

我想知道它是否一直在滚动。 如何使用JQuery?

这一个不起作用: 如何确定一个div是否滚动到底部?

这是正确的解决scheme(jsfiddle) 。 代码简要介绍一下:

$(document).ready(function () { $('div').bind('scroll', chk_scroll); }); function chk_scroll(e) { var elem = $(e.currentTarget); if (elem[0].scrollHeight - elem.scrollTop() == elem.outerHeight()) { console.log("bottom"); } } 

看到这个更多的信息。

 function isScrolledToBottom(el) { var $el = $(el); return el.scrollHeight - $el.scrollTop() - $el.outerHeight() < 1; } 

这是@ samccone的答案的变化,结合@ HenrikChristensen关于子像素测量的评论。

你可以通过

 (scrollHeight - scrollTop()) == outerHeight() 

应用所需的jQuery语法,当然…

自2012年以来, Firefox包含scrollTopMax属性。 如果scrollTop === scrollTopMax你在元素的底部。

这里是代码:

 $("#div_Id").scroll(function (e) { e.preventDefault(); var elem = $(this); if (elem.scrollTop() > 0 && (elem[0].scrollHeight - elem.scrollTop() == elem.outerHeight())) { alert("At the bottom"); } }); 

没有jQuery,onScroll事件

 var scrollDiv = event.srcElement.body window.innerHeight + scrollDiv.scrollTop == scrollDiv.scrollHeight 

由于它没有这样的jQuery工作:

  var isBottom = node.scrollTop + node.offsetHeight === node.scrollHeight; 

我做 :

  var node = $('#mydiv')[0]; // gets the html element if(node) { var isBottom = node.scrollTop + node.offsetHeight === node.scrollHeight; } 

对于我$el.outerHeight()给出了错误的值(由于边界宽度),而$el.innerHeight()给出了正确的,所以我使用

 function isAtBottom($el){ return ($el[0].scrollHeight - $el.scrollTop()) == $el.innerHeight(); }