vue material md-table scroll event bin

简介: vue material md-table scroll event bin

有这么一个需求,使用 vue-material 的 md-table 组件的 Fixed headers 样式效果显示数据

image.png


默认表格显示100条数据,如果滚动条滑动到最底部时,再加载100条数据,不停更新表格数据,直到把所有数据显示完为止

实现需求需要监听 md-table 中的滚动条,判断滚动到底触发对应操作

一般都是直接监听整个页面的滚动条,md-table 的滚动条监听需要做个小改动,监听事件才有效

####example.vue

md-table 设置 ref 属性,在 mounted() 中需要用到

<md-table v-model="tableData" md-card md-fixed-header ref="cardTable">
  <md-table-toolbar>
    <h1 class="md-title">title</h1>
  </md-table-toolbar>
  <md-table-row slot="md-table-row" slot-scope="{ item }">
    <md-table-cell v-for="(v, k) in item" :md-label="k" :key="k">
      {{v}}
    </md-table-cell>
  </md-table-row>
</md-table>
mounted () {
...
let cardTable = this.$refs.cardTable
// 获取页面中的滚动条所在的元素
let lastEle = cardTable.$el.lastElementChild 
// 滚动监听
lastEle.addEventListener('scroll', () => {
  // 判断滚动条是否到底
  if (lastEle.scrollHeight - lastEle.scrollTop === lastEle.clientHeight) {
    // do something 
    console.log('我是有底线的.')
  }
}, false)
...  
}

只要找到 md-table 生成的滚动条所在的元素位置,给元素添加对应的滚动监听事件就OK了

scroll

developer.mozilla.org/en-US/docs/…

scrollHeight

developer.mozilla.org/en-US/docs/…

scrollTop

developer.mozilla.org/en-US/docs/…

clientHeight

developer.mozilla.org/en-US/docs/…

相关文章
|
4天前
|
缓存 监控 JavaScript
探讨优化Vue应用性能和加载速度的策略
【5月更文挑战第17天】本文探讨了优化Vue应用性能和加载速度的策略:1) 精简代码和组件拆分以减少冗余;2) 使用计算属性和侦听器、懒加载、预加载和预获取优化路由;3) 数据懒加载和防抖节流处理高频事件;4) 图片压缩和选择合适格式,使用CDN加速资源加载;5) 利用浏览器缓存和组件缓存提高效率;6) 使用Vue Devtools和性能分析工具监控及调试。通过这些方法,可提升用户在复杂应用中的体验。
14 0
|
4天前
|
JavaScript 前端开发
vue(1),小白看完都会了
vue(1),小白看完都会了
|
3天前
|
JavaScript 开发工具 git
Vue 入门系列:.env 环境变量
Vue 入门系列:.env 环境变量
10 1
|
4天前
|
JavaScript 前端开发 定位技术
Vue使用地图以及实现轨迹回放 附完整代码
Vue使用地图以及实现轨迹回放 附完整代码
Vue使用地图以及实现轨迹回放 附完整代码
|
4天前
|
JavaScript
Vue中避免滥用this去读取data中数据
Vue中避免滥用this去读取data中数据
|
4天前
|
JavaScript
vue中使用pinia及持久化
vue中使用pinia及持久化
7 0
|
4天前
|
JavaScript 前端开发 UED
Vue class和style绑定:动态美化你的组件
Vue class和style绑定:动态美化你的组件
|
4天前
|
JavaScript 前端开发 API
Vue 监听器:让你的应用实时响应变化
Vue 监听器:让你的应用实时响应变化
|
4天前
|
JavaScript
vue封装svg
vue封装svg
10 0
|
4天前
|
JavaScript
vue封装面包屑组件
vue封装面包屑组件
7 0