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

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

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

方法一、css + js的形式

這個(gè)方法需要在表格外層設(shè)置一個(gè)div,原理是將表格的高度設(shè)置成外層div的高度,所以外層的div需要使用calc來(lái)設(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è)置方法

//這里減去的是你個(gè)人業(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è)置和方法一相同,不過表格高度不用動(dòng)態(tài)設(shè)置,直接設(shè)置height="100%"即可

方法三、指令的形式

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

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

// 設(shè)置表格高度
const doResize = async (el, binding, vnode) => {
  // 獲取表格Dom對(duì)象
  const { componentInstance: $table } = await vnode
  // 獲取調(diào)用傳遞過來(lái)的數(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')
  // 獲取距底部距離(用于展示頁(yè)碼等信息)
  const bottomOffset = (value && value.bottomOffset) || 30
  if (!$table) return
  // 計(jì)算列表高度并設(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)
  },
  // // 綁定默認(rèn)高度
  async inserted(el, binding, vnode) {
    await doResize(el, binding, vnode)
  },
  // // 銷毀時(shí)設(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里面引入以便全局使用,當(dāng)然你也可以局部引入
main.js

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

表格中使用

// 這里需要設(shè)置一個(gè)默認(rèn)的高度,多少都可以,然后后面的60就是除了表格之外其他內(nèi)容的高度,比如查詢條件等
// 指令的好處是會(huì)監(jiān)聽屏幕的變化來(lái)動(dòng)態(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動(dòng)態(tài)設(shè)置表格高度的3種方法的詳細(xì)內(nèi)容,更多關(guān)于vue基于ElementUI動(dòng)態(tài)設(shè)置表格動(dòng)態(tài)高度的3種方法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Underscore源碼分析

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

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

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

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

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

最新評(píng)論

舟山市| 阳新县| 买车| 兴业县| 桐城市| 平远县| 雷山县| 石嘴山市| 淮安市| 洛阳市| 郴州市| 武城县| 巨野县| 北安市| 轮台县| 潼关县| 云南省| 绍兴市| 伊吾县| 永春县| 都兰县| 桂林市| 鄂托克前旗| 嘉义县| 中方县| 新河县| 兴义市| 宜丰县| 建水县| 西林县| 阿瓦提县| 子洲县| 项城市| 宜良县| 灵石县| 息烽县| 东丰县| 谷城县| 会泽县| 迁西县| 方城县|