layui数据表格增加自动换行后,拖动列宽固定列错乱变形

这篇博客主要讨论了在layui表格中遇到的一个问题:当表格内容增加自动换行功能并调整行高时,右侧固定列的行高与主表格不匹配。原因是layui通过定位方式创建了一个新的table,导致高度继承出错。为了解决这个问题,作者提出了一个解决方案,即监听鼠标按下和释放事件,拖动列宽时循环更新中间表格和固定列的tr高度。同时,还提供了在排序操作后重新渲染表格高度的方法。
摘要由CSDN通过智能技术生成

在这里插入图片描述

问题:表格内容增加了自动换行功能,当行高发生改变时发现右侧固定列行高不匹配。

原因:layui用定位把固定列定位在了右边,这样就会产生一个新的table,在继承高度的时候发生了错乱

解决思路:当拖动列宽的时候循环中间的表格所有tr的高度给右边表格tr依次赋值

这里我写了一个鼠标按下和释放的方法来监听拖动
// 该方法用于解决固定列行高错位问题
     var x,y;
    $(document).mousedown(function(event){ //获取鼠标按下的位置
        x = event.pageX;
        y = event.pageY;
    });
    $(document).mouseup(function(event){//鼠标释放
        var newX = event.pageX;
        var newY = event.pageY;
        if(x==newX && y==newY){
            //位置相同的操作
        }
        else{
            //表格内容高度重渲染
            //我这里只有右边有 固定列 左边是没有的,如果左右都有请自己查看元素 使用eq()选择器选择
            //正确的 tr数组
            $(".layui-table-body  tr").each(function (index, val) {
            $($(".layui-table-fixed .layui-table-body table tr")[index]).height($(val).height());
            //表头高度重渲染
        });
        //这里 .layui-table-header 第二个元素是固定列 第一个是需要获取的
        $(".layui-table-header").eq(1).find("tr").eq(0).height($(".layui-table-header").eq(0).find("tr").eq(0).height());
        }
       
    })

如果你的列表里有排序 sort ,需要添加一个sort监听事件

table.on('sort(test)', function(obj){ //注:sort 是工具条事件名,test 是 table 原始容器的属性 lay-filter //表格内容高度重渲染
            $(".layui-table-body  tr").each(function (index, val) {
            $($(".layui-table-fixed .layui-table-body table tr")[index]).height($(val).height());
            //表头高度重渲染
        });
        $(".layui-table-header").eq(1).find("tr").eq(0).height($(".layui-table-header").eq(0).find("tr").eq(0).height());
		
		
	});	
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值