Skip to content

滚动条触底事件

javascript
<a-scrollbar id="scrollableElement">
      <div v-for="item in 50" :key="item"></div>
</a-scrollbar>

1、获取滚动盒子

2、获取盒子的总高度

3、获取盒子的可视高度

4、当前盒子的的滚动高度

5、(滚动高度 + 可视高度 >= 盒子的总高度) = 元素触底

javascript
// 滚动条触底事件
const scrollBottom = () => {
  // 获取滚动盒子
  const scrollableElement = document.getElementById("scrollableElement");

  scrollableElement.addEventListener("scroll", function () {
    // 元素的总高度
    const elementHeight = scrollableElement.scrollHeight;
    // 元素的可视高度
    const visibleHeight = scrollableElement.clientHeight;
    // 当前的滚动高度
    const scrollTop = scrollableElement.scrollTop;

    // 判断是否触底
    // scrollTop != 0 解决列表重置时触发的问题
    // 可以做预留空间,未必非要完全触底才加载scrollTop + visibleHeight + 100 >= elementHeight
    if (scrollTop != 0 && scrollTop + visibleHeight >= elementHeight) {
      console.log("元素触底了!");
      // 在这里可以执行你想要的操作,例如加载更多内容
    }
  });
};

onMounted(() => {
  scrollBottom();
});

基于 MIT 许可发布