关于表格没有滚动条,但设有左侧固定列,导致悬浮+原有表头重复的问题

首先判断表格是否有滚动条,没滚动条就隐藏悬浮左侧固定列,使用visibility:hidden

hasVerticalScrollbar(table) {
      const tableBoxWidth = this.tableBox?.offsetWidth || undefined
      const tableWidth = document.querySelector('table')?.offsetWidth || undefined
      return tableBoxWidth < tableWidth;
    }
this.$nextTick(() => {
        const fixedLeft = document.querySelectorAll('.ant-table-fixed-left') || []
        if (!this.hasVerticalScrollbar()) {
          fixedLeft.forEach(item => {
            item.style.visibility = 'hidden'
          })
        } else {
          fixedLeft.forEach(item => {
            item.style.visibility = 'visible'
          })
        }
      })

研究方向错误,一开始想的是通过获取dom元素,拿到悬浮的固定列,剥离出绑定的key值,获取到所有表头跟单元格,通过循环的方式,定位到相同key的表头下标,根据当前的下标隐藏重复的表头跟单元格,但是后边的列会继续补上去,跑到悬浮列下边被挡住,始终达不到想要的效果,最后灵机一动通过判断表格是否满足滚动条件来改动,有滚动条就显示悬浮固定列,没有滚动条就去掉固定列,完美解决这个问题,就不需要获取并操作大量dom元素。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值