3 回答

TA贡献1878条经验 获得超4个赞
所有主要浏览器支持的更新代码(包括IE10和IE11)
window.onscroll = function(ev) { if ((window.innerHeight + window.pageYOffset) >= document.body.offsetHeight) { alert("you're at the bottom of the page"); }};
当前接受的答案的问题是window.scrollY
在IE中不可用。
下面是一个报价MDN关于scrollY:
对于跨浏览器兼容性,请使用window.pageYOffset而不是window.scrollY。
一个工作片段:
window.onscroll = function(ev) {
if ((window.innerHeight + window.pageYOffset ) >= document.body.offsetHeight) {
alert("you're at the bottom of the page");
}
};
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
注意mac
根据@Raphaël的评论,由于偏移很小,因此mac存在问题。
以下更新条件有效:
(window.innerHeight + window.pageYOffset) >= document.body.offsetHeight - 2
我没有机会进一步测试,如果有人可以对这个具体问题发表意见,那就太棒了。

TA贡献1872条经验 获得超4个赞
接受的答案对我不起作用。这样做:
window.onscroll = function(ev) { if ((window.innerHeight + window.scrollY) >= document.body.scrollHeight) { // you're at the bottom of the page console.log("Bottom of page"); }};
如果您希望支持旧浏览器(IE9),请使用window.pageYOffset
稍微更好支持的别名。
添加回答
举报