为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

德玛西亚99 2019-07-23 19:13:16
Javascript:如何检测浏览器窗口是否滚动到底部?我需要检测用户是否滚动到页面底部。如果它们位于页面底部,当我向底部添加新内容时,我会自动将它们滚动到新的底部。如果他们不在底部,他们正在阅读页面上较高的先前内容,所以我不想自动滚动它们,因为他们想要留在原地。如何检测用户是否滚动到页面底部或是否在页面上滚动更高?
查看完整描述

3 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

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

见演示


查看完整回答
反对 回复 2019-07-23
?
UYOU

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

我没有机会进一步测试,如果有人可以对这个具体问题发表意见,那就太棒了。


查看完整回答
反对 回复 2019-07-23
?
守着一只汪

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稍微更好支持的别名。


查看完整回答
反对 回复 2019-07-23
  • 3 回答
  • 0 关注
  • 856 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号