Javascript:如何检测浏览器窗口是否滚动到底部?

我需要检测用户是否滚动到页面的底部。 如果他们在页面的底部,当我向底部添加新内容时,我会自动将它们滚动到新的底部。 如果他们不在底部,他们正在读取页面上更高的内容,所以我不想自动滚动他们,因为他们想保持他们在哪里。

如何检测用户是滚动到页面底部还是滚动页面上方?


window.onscroll = function(ev) {
    if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) {
        // you're at the bottom of the page
    }
};

看演示


支持所有主流浏览器的更新代码(包括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>

接受的答案不适合我。 这样做:

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");
    }
};
链接地址: http://www.djcxy.com/p/83343.html

上一篇: Javascript: How to detect if browser window is scrolled to bottom?

下一篇: jQuery : on horizontal scroll tell which element is in viewport