当前位置: 首页 > news >正文

【el-table滚动事件】el-table表格滚动时,获取可视窗口内的行数据

一个简单的获取内容的办法
表格部分,主要是ref写一下

 <el-table :data="tableData" ref="tableRef"> </el-table>

进入页面的时候绑定监听

mounted(){
// 绑定滚动事件this.$nextTick(() => {const table = this.$refs.tableRef;const scrollBody = table.$el.querySelector(".el-table__body-wrapper");// 1. 手动绑定滚动事件scrollBody.addEventListener("scroll", this.fangdou);// 2. 初始计算一次可视行this.fangdou();// 3. 监听窗口变化(可选)window.addEventListener("resize", this.fangdou);});
}

函数部分,增加了一层防抖。滚动停止再执行,不然执行的太频繁了

逻辑就是算出可视区域的高度,然后行要固定高,每行的高度你算一下或者写个固定的多少,这样就可以通过可视高度/行高得到,目前一次能拿到多少条。然后通过滚动条到顶部的位置距离,算出已经滚动过去多少个了,最后算出来的数量在表格内数组里抽数据

methods(){fangdou(e) {// 清除之前的定时器if (this.scrollTimer) clearTimeout(this.scrollTimer);// 设置新的定时器(延迟500ms执行)this.scrollTimer = setTimeout(() => {this.handleScroll();}, 500);},handleScroll() {const table = this.$refs.tableRef;const scrollBody = table.$el.querySelector(".el-table__body-wrapper");// 获取滚动位置和可视区域高度const scrollTop = scrollBody.scrollTop;const visibleHeight = scrollBody.clientHeight;// 计算起始行和结束行索引const startIndex = Math.floor(scrollTop / 50);const endIndex = Math.min(startIndex + Math.ceil(visibleHeight / 50), this.tableData.length - 1);// 获取可视行数据const visibleRows = this.tableData.slice(startIndex, endIndex);this.wdArr = [];visibleRows.forEach((item) => {// 未读状态,并有考核的数据才查看是否已读if (item.is_read !== 1 && item.khf) {this.wdArr.push(item.id);}});// 这里写你要做的事if (this.wdArr.length > 0) {this.edit_read();}},
}
http://www.dtcms.com/a/301984.html

相关文章:

  • 电磁兼容五:仿真技术
  • 数智驱动的「库存管理」:从风险系数、ABC分类到OMS和ERP系统的协同优化策略
  • 前端静态资源优化
  • WD5030A芯片24降12V,15A以内,应用于路由器、交换机和网络服务器,成本低大电流
  • 枚举策略模式实战:优雅消除支付场景的if-else
  • 6种将iPhone照片传输到Windows 10电脑的方法
  • Vue 正在热映模块
  • 安宝特案例丨AR+AI+SOP?3大技术融合革新军工航天领域
  • 组件化(一):重新思考“组件”:状态、视图和逻辑的“最佳”分离实践
  • 中兴云电脑W101D2-晶晨S905L3A-2G+8G-安卓9-线刷固件包
  • react前端样式如何给元素设置高度自适应
  • 四、计算机组成原理——第7章:输入/输出系统
  • Mac查看本机ip地址
  • 六轴机械臂cad【11张】三维图+设计说明书
  • GPU训练日志 (下)
  • Redis 服务挂掉排查与解决
  • STL学习(?、set容器)
  • 计算机毕业设计java在线二手系统的设计与实现 基于Java的在线二手交易平台开发 Java技术驱动的二手物品管理系统
  • 如何创建 Google 翻译桌面快捷方式
  • qt 心跳包
  • 【Linux篇】进程间通信:进程IPC
  • 搜索引擎高级搜索指令大全(Google、百度等浏览器通用)
  • R语言简介(附电子书资料)
  • 【kafka】消息队列
  • 深入Go并发编程:Channel、Goroutine与Select的协同艺术
  • Java BigDecimal详解:小数精确计算、使用方法与常见问题解决方案
  • 生产力效能跃升 金士顿DDR5 5600内存
  • 【正序拆解整数】2022-9-18
  • 二、Linux文本处理与文件操作核心命令
  • 群晖Synology Drive:打造高效安全的私有云协作平台