table第一列水平固定,垂直可滚动

本文介绍如何在Vue中实现表格第一列水平固定,同时保持垂直滚动功能。通过固定定位和监听滚动事件,调整表格第一列的位置。在动态生成的表格中,需额外处理表格生成后的错位问题。

table第一列水平固定,垂直可滚动

既然有固定的话首先需要想到给table的第一列加上固定定位

#divTable >>> table tr td:nth-child(1) {position: fixed;}

但是此时table的第一列无论上下、左右滑动都是固定不动的,明显与需求不符,所以我们还需要执行以下代码

接下来我们要在methods里面添加一个方法方便调用

methods:{
    handleScroll () {
        var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
        console.log(scrollTop)
          $("#divTable table tr td:nth-child(1)").css("position","absolute")
      },
}

再者我们需要监听一下这个滚动事件

window.addEventListener('scroll', this.handleScroll)

上述代码的意思是 监听了table距离浏览器顶部的距离,换言之如果页面发生上下滚动事件的时候,就会把table的固定定位换位绝对定位。

有了以上逻辑处理方案这个功能就得以实现了。

注:此时需要注意一点!!!

如果table是动态生成的话!还需要添加

if($('#divTable').offset().top > 0){
    setTimeout(function () {
      $("#divTable table tr td:nth-child(1)").css("position","absolute")
    },50);
 }

就是说如果这个table还未生成的情况下,页面向下滚动距离后,待table生成后第一列会有错位的现象发生,则需要加上上面这段代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值