element table左右 fixed同时固定列,列表错位情况修复

问题分析

问题示例图:

 左侧与右侧同时使用fixed固定时,当滚动到底部最后一条数据会被横向滚动条挤上去

 可以看到右侧固定列类名是 el-table__fixed-right 同时左侧固定列类名为 el-table__fixed 

可以通过修改top属性来微调

// 调整横向滚动条出现错位情况
.table-fixed {
// 左侧固定
	.el-table__fixed {
		top: -10px;
	}
// 右侧固定
	.el-table__fixed-right {
		top: -10px;
	}
}

调完之后会发现底部正常了 可是表头被挤出去了

 可以看到固定列中的类名  el-table__fixed-header-wrapper 来控制表头

// 调整横向滚动条出现错位情况
.table-fixed {
	.el-table__fixed {
		top: -10px;
		.el-table__fixed-header-wrapper {
			top: 10px; 
			z-index: 10;
		}
	}
	.el-table__fixed-right {
		top: -10px;
		.el-table__fixed-header-wrapper {
			top: 10px;
			z-index: 10;
		}
	}
}

 top进行微调 由于层级原因会被遮挡,只需要 调整 z-index 即可

监听列表滚动事件

let _self = this
// 注意 this 指向 方法内部this 指向的是该节点 而不是vue实例
const selectWrapper = document.querySelector('.el-table__body-wrapper')
			// 监听滚动事件
			selectWrapper.addEventListener('scroll', function() {
				let sign = 0
				const scrollDistance = this.scrollHeight - this.scrollTop - this.clientHeight
				// 滚动到底部返回true
				_self.isBottom = scrollDistance <= sign;
			})

最后再动态引入class类

<el-table v-loading="loading"
		:class="isBottom ? 'table-fixed' : ''" 
        ref="muTable" 
        :data="markList"
         @selection-change="handleSelectionChange">
        ...
</table>

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值