【element-ui】el-table横向滚动后,通过is-scrolling-left获取滚动高度失效的问题

el-table横向滚动后,通过is-scrolling-left获取滚动高度失效的问题

需求

现在有一个需求,需要监听el-table的纵向滚动,当滚动高度达到特定值时进行一些操作。

代码如下:

js 复制代码
methods:{
	throttledHandleScroll() {
      // 如果已经有定时器存在,则不执行方法,实现节流
      if (this.throttleTimer || this.paging) return;
      this.throttleTimer = setTimeout(() => {
        this.handleScroll(); // 实际执行滚动逻辑的方法
        this.throttleTimer = null; // 执行完后清空定时器ID,允许下次触发
      }, 100); // 200毫秒的节流时间间隔
    },
	handleScroll() {
      let dom = this.$refs.multipleTable.$el.getElementsByClassName('is-scrolling-left')[0];
      if (dom) {
        // console.log('handleScroll', dom.scrollTop);
        if (dom.scrollTop >= 80) {
          this.hiddenFilter = true;
        }
        if (dom.scrollTop <= 0) {
          this.hiddenFilter = false;
        }
      }
    },
},
mounted() {
    this.$nextTick(() => {
      this.$refs.multipleTable.$el
        .getElementsByClassName('is-scrolling-left')[0]
        .addEventListener('scroll', this.throttledHandleScroll);
    });
  },
beforeDestroy() {
  this.$refs.multipleTable.$el
    .getElementsByClassName('is-scrolling-left')[0]
    .addEventListener('scroll', this.throttledHandleScroll);
},

问题

当el-table横向滚动之后,

js 复制代码
let dom = this.$refs.multipleTable.$el.getElementsByClassName('is-scrolling-left')[0];

会取得一个undefind,也就是说没有找到类名为is-scrolling-left的元素。

原因

随着el-table的横向滚动,is-scrolling-left这个类名会依次变化为is-scrolling-middle,is-scrolling-right

解决

使用el-table__body-wrapper替换is-scrolling-left,el-table__body-wrapper这个类名是永远不会变动的

handleScroll方法中获取dom的一行修改为

相关推荐
阿赛工作室18 分钟前
基于Vue3和TensorFlow.js的数字图像识别应用HTML单文件
javascript·html·tensorflow
万少23 分钟前
公测期 0 元/月!商汤 SenseNova 免费 Token 再不领就没了
前端·javascript·后端
专注VB编程开发20年26 分钟前
专业分析python底层调用与按键精灵,ah3等的对比,hookdll,内存加载,调用.net dll
开发语言·javascript·python·microsoft·php·.net
invicinble26 分钟前
前端框架使用vue-cli( 第二层:工程配置层--elementui需要做的基础配置)
vue.js·elementui·前端框架
invicinble27 分钟前
前端框架使用vue-cli( 第二层:工程配置层--技术栈配置层配置)
javascript·vue.js·前端框架
不会飞的鲨鱼44 分钟前
观鸟网 RSA加密 AES 解密
javascript·爬虫·python
openKaka_1 小时前
从 performWorkOnRoot 到 workInProgress tree:React 真正开始 render 的地方
前端·javascript·react.js
测试员周周1 小时前
【AI测试数据及模型质量2】换一批测试数据,模型得分差20%——AI评测翻车的根子,90%在数据质量
人工智能·python·ui·单元测试·测试用例·集成测试·pytest
invicinble1 小时前
前端框架使用vue-cli( 第四层:业务源码层--登陆页相关)
前端·vue.js·前端框架
Rooting++1 小时前
vue2强制刷新路由的办法
前端·javascript·vue.js