vue material md-table scroll event bind

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

默认表格显示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

https://developer.mozilla.org/en-US/docs/Web/Events/scroll

scrollHeight

https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight

scrollTop

https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTop

clientHeight

https://developer.mozilla.org/en-US/docs/Web/API/Element/clientHeight

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 每个花开与花落, 都在不经意的瞬间 缘起时 花开 缘灭时 花落 而我一直都相信: 这个世界 某个角落 总有那么一个...
    今夕似何夕阅读 246评论 0 0
  • 时间真快,从小时候每周守着电视看《越策越开心》到后面的《天天向上》从两个人到一个团队,涵哥越来越帅气️️ 离开湖南...
    我酷你不能比我更酷阅读 197评论 0 0
  • 学生时代,名著读得少,其宏大的构思和深远的意义常常让我感觉距离遥远,尤其对于书中一些精辟、绝妙的描写,居然滋生不出...
    slooby阅读 999评论 2 15
  • 写文字之前,本想着构思一个关于历史方面的小故事用来作为小说的素材使用,突然微信里一连几串语音炸爆了我的平静。 是老...
    尚武三宝阅读 437评论 0 2

友情链接更多精彩内容