欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

element的el-table中記錄滾動條位置的示例代碼

 更新時間:2019年11月06日 09:40:45   作者:小小小華  
這篇文章主要介紹了element的el-table中記錄滾動條位置的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

場景重現(xiàn):在項目中使用了keep-alive來緩存組件,且使用element中的table列表,但在項目中是對table進行了二次封裝,跟頁碼合在了一起。按照網(wǎng)上的直接對scrollTop賦值,賦值失敗了,還要加上setTimeout才能成功,雖然實現(xiàn)了功能,但是不知道原因,可以的話希望有人能解答。

廢話少說,直接賦上代碼。

<template>
 <div class="table">
  <el-table ref="table">
  ...
  </el-table>
  <wp-pager @page-change="pageChange" :total="total" v-if="pager" v-bind="$attrs" v-on="$listeners"></wp-pager>
 </div>

</template>
<script>
 import { WpPager } from '../pager'

 export default {
  data() {
   return {
    scrollTop: null
   }
  },
  activated() {
   this.saveScroll()
  },
  mounted() {
   
  // 監(jiān)聽滾動條的位置 
  this.$refs.table.bodyWrapper.addEventListener('scroll', (res) => {
    let height = res.target
    this.scrollTop = height.scrollTop
   },false)
  },

  beforeDestroy() {
   this.$refs.table.bodyWrapper.removeEventListener('scroll', (res) => {
    let height = res.target
    this.scrollTop = height.scrollTop
   },false)
  },
  
  methods: {
  // 當頁碼改變的時候滾動條重新到頂部
   pageChange (page) {
    this.$emit('page-change', page)
    this.scrollTop = 0
    this.saveScroll()
   },

// 這里如果直接賦值給this.$el.querySelector('.el-table__body-wrapper').scrollTop會失效,需要加上setTimeout才行。
   saveScroll() {
    this.$nextTick(()=> {
    setTimeout(() => {
     var scrollTop = this.$el.querySelector('.el-table__body-wrapper')
     scrollTop.scrollTop = this.scrollTop
     }, 13)
    })
   }
  }
 }
</script>

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論