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;}
}
$(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!");
}
});
});
5条答案
按热度按时间1l5u6lss1#
找到滚动容器的高度,然后将其与滚动位置进行比较。如果它们相同,则已到达底部。
编辑:在js小提琴上做了一点测试,我意识到以前的版本是不正确的。你可以使用DOM属性来找出有多少滚动,然后像这样对元素的高度进行一点数学计算。
http://jsfiddle.net/Aet2x/1/
ryoqjall2#
这在我的聊天窗口中运行良好。它还能检测内容是否不够长而无法滚动。
更新:有人建议这个编辑是为了同一代码的更干净的版本。我喜欢我更详细的版本作为答案,但它是一个好主意,有两个可用。
hxzsmxv23#
这对我来说很有用(使用jQuery):
取自here。
bt1cpqcv4#
可以检查元素
scrollTop
是否等于元素innerHeight
。bvn4nwqk5#