vue material md-table scroll event bind

有這么一個需求,使用 vue-material 的 md-table 組件的 Fixed headers 樣式效果顯示數(shù)據(jù)

默認表格顯示100條數(shù)據(jù),如果滾動條滑動到最底部時,再加載100條數(shù)據(jù),不停更新表格數(shù)據(jù),直到把所有數(shù)據(jù)顯示完為止

實現(xiàn)需求需要監(jiān)聽 md-table 中的滾動條,判斷滾動到底觸發(fā)對應操作

一般都是直接監(jiān)聽整個頁面的滾動條,md-table 的滾動條監(jiān)聽需要做個小改動,監(jiān)聽事件才有效

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 
// 滾動監(jiān)聽
lastEle.addEventListener('scroll', () => {
  // 判斷滾動條是否到底
  if (lastEle.scrollHeight - lastEle.scrollTop === lastEle.clientHeight) {
    // do something 
    console.log('我是有底線的.')
  }
}, false)

...  
}

只要找到 md-table 生成的滾動條所在的元素位置,給元素添加對應的滾動監(jiān)聽事件就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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 每個花開與花落, 都在不經(jīng)意的瞬間 緣起時 花開 緣滅時 花落 而我一直都相信: 這個世界 某個角落 總有那么一個...
    今夕似何夕閱讀 240評論 0 0
  • 時間真快,從小時候每周守著電視看《越策越開心》到后面的《天天向上》從兩個人到一個團隊,涵哥越來越帥氣?? 離開湖南...
    我酷你不能比我更酷閱讀 193評論 0 0
  • 學生時代,名著讀得少,其宏大的構(gòu)思和深遠的意義常常讓我感覺距離遙遠,尤其對于書中一些精辟、絕妙的描寫,居然滋生不出...
    slooby閱讀 973評論 2 15
  • 寫文字之前,本想著構(gòu)思一個關于歷史方面的小故事用來作為小說的素材使用,突然微信里一連幾串語音炸爆了我的平靜。 是老...
    尚武三寶閱讀 420評論 0 2

友情鏈接更多精彩內(nèi)容