vue js实现table高度自适应

* 自适应表格的max-height,即使头部元素发生换行也不影响,不是表格也可以用,自行调整底部距离即可。(此函数没有监听窗口resize)*

函数

export async function setTableHeight(table) {
    let tableHeight = 0  //表格max-height
    let safeDistance = 10 // 页面在iframe时留出部分高度
    let bottomHeight = 80 //留出表格分页栏高度
    await this.$nextTick(() => {
        let {
            top
        } = document.querySelector(table).getBoundingClientRect() //获取元素四个方向的距离
        tableHeight = document.getElementById('app').offsetHeight - top - bottomHeight
        if (self.frameElement && self.frameElement.tagName == 'IFRAME') {
            tableHeight = tableHeight - safeDistance
        }

    })
    return tableHeight
}

使用

//传入表格的id或class 注意格式 .class  /  #id ,不是表格也可以用,自行调整底部距离即可
// 将tableHeight 作为表格的 max-height 即可  <el-table :max-height="tableHeight">
mounted(){
 this.getTheight('.el-table').then((val) => {
      this.tableHeight = val
    })
    }

正常页面时
在这里插入图片描述
头部高度发生换行时
在这里插入图片描述
未使用该函数时,表格元素发生超出页面显示
在这里插入图片描述

使用该函数动态高度时,会适应剩余高度,防止表格超出页面大小

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值