el-table高度自适应 解决方案

简单记录一下 Vue3 + element-plus

问题

当模糊搜素高度变化后分页会被挤出页面

解决方案

自定义一个指令去动态修改 table 高度

结构 + 注意事项

在el-table 外加一层 div ,并且 el-table 要加上 这两个属性 宽 和高 style=“width: 100%;” height=“100%” ,下面图片有
在这里插入图片描述

自定义指令

top 高度 看自己需求改

import { DirectiveBinding } from 'vue'

interface ExHTMLElement extends HTMLElement {
  resizeListener: EventListener
}

export default {
  mounted: (el: ExHTMLElement, binding: DirectiveBinding) => {
    el.resizeListener = () => {
      setHeight(el, binding)
    }
    setHeight(el, binding)
    window.addEventListener('resize', el.resizeListener)
  },
  unmounted(el: ExHTMLElement) {
    window.removeEventListener('resize', el.resizeListener)
  }
}

// el-table height
function setHeight(el: ExHTMLElement, binding: DirectiveBinding) {
  const top = el.offsetTop + 114
  const bottom = binding?.value?.bottom || 64
  const pageHeight = window.innerHeight
  // console.log('top',top)
  // console.log('pageHeight',pageHeight)

  el.style.height = pageHeight - top - bottom + 'px'
  el.style.overflowY = 'auto' 
}


最终效果

请添加图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值