el-table根據屏幕大小適配最大高度


問題描述

使用elementUI(v2.13.2)開發過程中使用el-table渲染列表,需要控制table的最大高度,達到溢出滾動的效果。

問題解決

參考element文檔,可以使用 max-height屬性(Table 的最大高度。合法的值為數字或者單位為 px 的高度),於是可以設置一個具體的值,eg:max-height="360px" 或max-height="360",但是這樣並不能解決屏幕適配的問題。那就考慮在dom渲染完成后,計算瀏覽器窗口的可見高度 減去 固定的元素高度,剩下的就是table的最大高度了。

  • 給el-table設置max-height,maxHeight 默認為0
<el-table
  :data="tableData"
  :max-height="maxHeight"
>
  • 方法一:在mounted階段設置計算maxheight的值
mounted() {
  this.$nextTick(() => {
    // window.innerHeight 瀏覽器窗口的可見高度,下面的 200 是除了table最大高度的剩余空間。
    this.maxHeight = window.innerHeight - 200
  })
},
  • 方法二:在接口獲取數據后直接計算
methods: {
  getTableData() {
    getList().then(res => {
      this.tableData = res.data
      this.maxHeight = window.innerHeight - 200
    })
  }
}

備注

至於在mounted中為啥用 nextTick,因為table數據渲染過程中dom會重新計算高度,mounted中執行運算的時候接口的數據可能還沒有返回呢。
這個maxHeight的計算可以在請求接口獲取數據賦值 tableData 后計算,此時可以不用nextTick也能達到一樣效果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM