vue3 el-table 触底加载

<el-table ref="TableRef"></el-table>
 
import {
  ref,
  reactive,
  getCurrentInstance,
  defineProps,
  watch,
  onMounted,
  defineEmits,
  onUnmounted,
} from "vue";
 
onMounted(() => {
  // 挂载
  TableRef.value &&
    TableRef.value.$refs.bodyWrapper.addEventListener(
      "mousewheel",
      scrollBehavior
    );
});
 
onUnmounted(() => {
  // 卸载
  TableRef.value &&
    TableRef.value.$refs.bodyWrapper.removeEventListener(
      "mousewheel",
      scrollBehavior
    );
});
 
// 滚动行为
function scrollBehavior(e) {
  // 滚动方向判定
  const scrollDirection = e.deltaY > 0 ? "down" : "up";
  if (scrollDirection === "down") {
    // 获取提供实际滚动的容器
    const dom =
      TableRef.value.$refs.bodyWrapper.getElementsByClassName(
        "el-scrollbar__wrap"
      )[0];
    const { clientHeight, scrollTop, scrollHeight } = dom;
    console.log(clientHeight + scrollTop, scrollHeight);
    // 父容器高度 + 子容器距离父容器顶端的高度 = 子容器可滚动的高度
    if (scrollHeight - (clientHeight + scrollTop) <= 200) {
      console.log("竖向滚动条已经滚动到底部");
    }
  }
}
 

使用element-plus   "el-scrollbar__wrap" 改成 "ep-scrollbar__wrap" 

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值