我如何使用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(); }