最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue基于ElementUI動態(tài)設(shè)置表格高度的3種方法

 更新時間:2025年02月01日 16:24:39   作者:樂動小鍋蓋  
ElementUI+vue動態(tài)設(shè)置表格高度的幾種方法,拋磚引玉,還有其它方法動態(tài)設(shè)置表格高度,大家可以開動腦筋

方法一、css + js的形式

這個方法需要在表格外層設(shè)置一個div,原理是將表格的高度設(shè)置成外層div的高度,所以外層的div需要使用calc來設(shè)置高度,然后給表格設(shè)置:height="tableH"的屬性

<div class="table-wrapper" ref="tableWrapper" v-loading="loading">
<el-table :data="tableData" stripe style="width: 100%" :height="tableH">
    <el-table-column
      prop="date"
      label="日期"
      width="180">
    </el-table-column>
    <el-table-column
      prop="name"
      label="姓名"
      width="180">
    </el-table-column>
    <el-table-column
      prop="address"
      label="地址">
    </el-table-column>
 </el-table>
</div>

外層div高度的設(shè)置方法

//這里減去的是你個人業(yè)務(wù)除了表格之外其他內(nèi)容的高度,比如查詢條件等
<style lang="scss" scoped>
.table-wrapper {
    height: calc(100% - 60px);
 }
</style>

態(tài)獲取表格高度tableH的方法

<script>
// 在data里面初始化tableH
data() {
      return {
         tableH: 0
      }
},
methods: {
  // 重置table高度
      resetHeight() {
        return new Promise((resolve, reject) => {
          this.tableH = 0
          resolve()
        })
      },
      // 設(shè)置table高度
      fetTableHeight() {
        this.resetHeight().then(res => {
          this.tableH = this.$refs.tableWrapper.getBoundingClientRect().height - 10
        })
      }
},
// 調(diào)用
 mounted() {
    this.fetTableHeight();
 }
</script>

方法二、純css的形式

還是需要在表格外加一層div,div高度設(shè)置和方法一相同,不過表格高度不用動態(tài)設(shè)置,直接設(shè)置height="100%"即可

方法三、指令的形式

這種方法不需要設(shè)置外層div,定義一個文件夾tableHeight分別定義一個tableHeight.js和index.js
tableHeight.js如下

import { addResizeListener, removeResizeListener } from 'element-ui/src/utils/resize-event'

// 設(shè)置表格高度
const doResize = async (el, binding, vnode) => {
  // 獲取表格Dom對象
  const { componentInstance: $table } = await vnode
  // 獲取調(diào)用傳遞過來的數(shù)據(jù)
  const { value } = binding
  // if (!$table.height) {
  //   throw new Error(`el-$table must set the height. Such as height='100px'`)
  // }
  // console.log($table, '$table$table$table$table')
  // 獲取距底部距離(用于展示頁碼等信息)
  const bottomOffset = (value && value.bottomOffset) || 30
  if (!$table) return
  // 計算列表高度并設(shè)置
  const height = window.innerHeight - el.getBoundingClientRect().top - bottomOffset
  // $table.layout.setMaxHeight(height)
  $table.layout.setHeight(height)
  // $table.maxHeight = height
  $table.doLayout()
}

export default {
  // 初始化設(shè)置
  bind(el, binding, vnode) {
    // 設(shè)置resize監(jiān)聽方法
    el.resizeListener = async () => {
      await doResize(el, binding, vnode)
    }
    // 綁定監(jiān)聽方法到addResizeListener
    addResizeListener(window.document.body, el.resizeListener)
  },
  // // 綁定默認高度
  async inserted(el, binding, vnode) {
    await doResize(el, binding, vnode)
  },
  // // 銷毀時設(shè)置
  unbind(el) {
    // 移除resize監(jiān)聽
    removeResizeListener(el, el.resizeListener)
  }
}

ndex.js如下

import tableHeight from './table-height'

const install = function(Vue) {
  // 綁定v-adaptive指令
  Vue.directive('tableHeight', tableHeight)
}

if (window.Vue) {
  window['tableHeight'] = tableHeight
  // eslint-disable-next-line no-undef
  Vue.use(install)
}

tableHeight.install = install

export default tableHeight

用方式,在main.js里面引入以便全局使用,當然你也可以局部引入
main.js

// 這個是你剛剛寫的index.js的路徑
import tableHeight from '@sysmng/directive/tableHeight'
// 表格自適應(yīng)指令
Vue.use(tableHeight)

表格中使用

// 這里需要設(shè)置一個默認的高度,多少都可以,然后后面的60就是除了表格之外其他內(nèi)容的高度,比如查詢條件等
// 指令的好處是會監(jiān)聽屏幕的變化來動態(tài)改變高度
<el-table :data="tableData" stripe style="width: 100%" height="100px" v-tableHeight="{bottomOffset: 60}">
    <el-table-column
      prop="date"
      label="日期"
      width="180">
    </el-table-column>
    <el-table-column
      prop="name"
      label="姓名"
      width="180">
    </el-table-column>
    <el-table-column
      prop="address"
      label="地址">
    </el-table-column>
 </el-table>

以上就是vue基于ElementUI動態(tài)設(shè)置表格高度的3種方法的詳細內(nèi)容,更多關(guān)于vue基于ElementUI動態(tài)設(shè)置表格動態(tài)高度的3種方法的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用Axios結(jié)合Typescript二次封裝完整詳細場景使用案例

    使用Axios結(jié)合Typescript二次封裝完整詳細場景使用案例

    本文詳細介紹了如何使用TypeScript對Axios進行二次封裝,以提高HTTP請求的統(tǒng)一管理和可維護性,通過創(chuàng)建Axios實例、封裝請求和響應(yīng)處理、錯誤處理以及創(chuàng)建特定的API服務(wù),可以實現(xiàn)更加一致和方便的API調(diào)用,需要的朋友可以參考下
    2024-11-11
  • 網(wǎng)站內(nèi)容禁止復(fù)制和粘貼、另存為的js代碼

    網(wǎng)站內(nèi)容禁止復(fù)制和粘貼、另存為的js代碼

    這篇文章主要介紹了JS如何實現(xiàn)網(wǎng)站內(nèi)容如何實現(xiàn)禁止復(fù)制和粘貼、另存為,需要的朋友可以參考下
    2014-02-02
  • JS延遲加載的幾種方式小結(jié)

    JS延遲加載的幾種方式小結(jié)

    JS延遲加載,也就是等頁面加載完成之后再加載 JavaScript 文件,JS延遲加載有助于提高頁面加載速度,本文小編給大家介紹了JS延遲加載的幾種方式小結(jié),感興趣的小伙伴跟著小編一起來看看吧
    2024-08-08
  • 原生JS實現(xiàn)京東查看商品點擊放大

    原生JS實現(xiàn)京東查看商品點擊放大

    這篇文章主要為大家詳細介紹了原生JS實現(xiàn)京東查看商品點擊放大,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • 微信小程序中實現(xiàn)車牌輸入功能

    微信小程序中實現(xiàn)車牌輸入功能

    我們都知道車牌是有一定規(guī)律的,本文實現(xiàn)了微信小程序中實現(xiàn)車牌輸入功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • JavaScript同步與異步任務(wù)問題詳解

    JavaScript同步與異步任務(wù)問題詳解

    這篇文章主要介紹了JavaScript事件循環(huán)同步任務(wù)與異步任務(wù),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-07-07
  • js實現(xiàn)兼容PC端和移動端滑塊拖動選擇數(shù)字效果

    js實現(xiàn)兼容PC端和移動端滑塊拖動選擇數(shù)字效果

    這篇文章主要為大家詳細介紹了js實現(xiàn)兼容PC端和移動端滑塊拖動選擇數(shù)字的效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Underscore源碼分析

    Underscore源碼分析

    Underscore 是一個 JavaScript 工具庫,它提供了一整套函數(shù)式編程的實用功能,但是沒有擴展任何 JavaScript 內(nèi)置對象。這篇文章主要介紹了underscore源碼分析相關(guān)知識,感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • javascript封裝 Cookie 應(yīng)用接口

    javascript封裝 Cookie 應(yīng)用接口

    本文通過幾個簡單的示例向大家展示了javascript封裝cookie的注意事項及操作方法,非常的簡單實用,最后附上一則具體實例,有需要的小火把可以參考下。
    2015-08-08
  • JAVA面試題 static關(guān)鍵字詳解

    JAVA面試題 static關(guān)鍵字詳解

    這篇文章主要介紹了JAVA面試題 淺析Java中的static關(guān)鍵字,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07

最新評論

安义县| 冕宁县| 象山县| 嘉兴市| 攀枝花市| 宁国市| 浏阳市| 珲春市| 遂平县| 双流县| 普安县| 长汀县| 尼木县| 抚宁县| 鲜城| 和林格尔县| 日土县| 宝坻区| 湾仔区| 平阳县| 印江| 乾安县| 江城| 乌什县| 思南县| 塔城市| 沙雅县| 封开县| 织金县| 兴国县| 汉川市| 资兴市| 肃宁县| 通州区| 从化市| 五寨县| 眉山市| 绥中县| 行唐县| 临海市| 长泰县|