JavaScript检测窗口是否滚动到底部

有时,我们需要检测是否已向下滚动到窗口底部。

例如,假设您正在创建一个延迟加载功能,在该功能中,您需要检查是否已达到滚动限制才能获取其他数据。

检测窗口是否滚动到底部。

浏览器的窗口和文档属性为我们提供了三种不同的东西,我们将使用它们来检测滚动端。

const scrollEnd = (window.innerHeight + window.scrollY) >= document.body.offsetHeight;

innerHeight给出放置数据的窗口的可用高度,并提供滚动位置。scrollY

我们将它们组合在一起,通过将其与 进行比较来检查我们是否已经到达了身体的末端。document.body.offsetHeight

这可以正常工作,但该属性在 IE 浏览器中不可用。scrollY

因此,以下是我们可以使用的解决方法。

const scrollEnd = (window.innerHeight + window.pageYOffset) >= document.body.offsetHeight;
pageYOffset

为我们提供了当前文档的像素已从窗口左上角水平滚动。

MAC 中的滚动位置。

这在除MAC之外的所有浏览器中都能完美运行。在mac中,我们需要从计算中减少几个像素。

const scrollEnd = (window.innerHeight + window.pageYOffset) >= document.body.offsetHeight - 2;

如果您想检查特定元素,那么我们执行以下操作。

  const d = document.documentElement;
  const offset = d.scrollTop + window.innerHeight;
  const height = d.offsetHeight;
  const scrollEnd = offset >= height;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南北极之间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值