如何检查滚动条是否位于底部?使用JQuery或JavaScript
答案 0 :(得分:14)
您可以找到滚动容器的高度,然后将其与滚动位置进行比较。如果它们是相同的,那么你已经到了底部。
<div style="overflow: auto; height: 500px">
</div>
$(document).ready(function()
{
$('div').scroll(function()
{
var div = $(this);
if (div.height() == div.scrollTop() + 1) //scrollTop is 0 based
{
alert('Reached the bottom!");
}
});
});
编辑:在js小提琴中进行一些测试,我意识到以前的版本不正确。 您可以使用DOM属性来查找滚动量,并使用元素的高度执行一些数学运算
var div = $(this);
if (div[0].scrollHeight - div.scrollTop() == div.height())
{
alert('Reached the bottom!');
}
答案 1 :(得分:4)
这适用于我的聊天窗口。它还检测内容是否不够长而无法滚动。
function atBottom(ele) {
var sh = ele.scrollHeight;
var st = ele.scrollTop;
var ht = ele.offsetHeight;
if(ht==0) {
return true;
}
if(st == sh - ht)
{return true;}
else
{return false;}
}
答案 2 :(得分:2)
这对我有用(使用jQuery):
$(document).ready(function(){
$('div').scroll(function(){
//scrollTop refers to the top of the scroll position, which will be scrollHeight - offsetHeight
if(this.scrollTop == (this.scrollHeight - this.offsetHeight)) {
console.log("Top of the bottom reached!");
}
});
});
取自here。
答案 3 :(得分:0)
您可以检查元素scrollTop
是否等于元素innerHeight
。
if($('div').scrollTop() == $('div').innerHeight()){
//Reached the bottom
}
答案 4 :(得分:-2)
let div = document.getElementById("div");
if ((div.scrollHeight - div.scrollTop) == div.clientHeight) {
alert('at Bottom');
}
<div id="div" style="overflow:auto; height=700px">
</div>