检测是否在移动设备上滚动到底部

时间:2021-07-13 09:10:48

标签: javascript html scroll vertical-scrolling

我需要检测用户是否已滚动到可滚动 div 的底部。我认为下面的代码应该可以正常工作,并且可以在台式计算机上运行,​​但不能在移动设备(在这种情况下为 Android、Chrome 浏览器)上运行。

var scrolledToEnd = el.scrollHeight - el.scrollTop === el.clientHeight

可滚动的 divoverflow 设置为 auto。它的 clientHeight 是 150px

滚动到底部时的桌面结果

  • el.scrollHeight - el.scrollTop150
  • el.clientHeight150

滚动到底部时的移动结果

  • el.scrollHeight - el.scrollTop149.90476
  • el.clientHeight150

为什么移动设备上的结果不同?有没有办法使这项工作也适用于移动设备?目前我还没有想出解决方案。

希望有人能帮忙,提前致谢。

1 个答案:

答案 0 :(得分:1)

你可以使用

var scrolledToEnd = el.scrollHeight - Math.round(el.scrollTop) === el.clientHeight;

如果您阅读MDN,您会注意到

<块引用>

在使用显示缩放的系统上,scrollTop 可能会给您一个十进制值。