最新消息: 新版網站上線了?。?!
  • element的el-table中記錄滾動條位置的示例代碼

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

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

    <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() {
       
      // 監聽滾動條的位置 
      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>
    
    

    以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持谷谷點程序。

    .....

    轉載請注明:谷谷點程序 » element的el-table中記錄滾動條位置的示例代碼

    平度胜利路按摩在什么地方多,平度做大活的足疗,平度职教中心女孩微信,平度找曼地方