layer表格展示全部数据宽度自适应超出展示滚动条

4年前端第一次写文章,还是比较菜的
公司算是比较老的过期用的框架比较老layer
最近碰到的需求有个问题就是要展示全部数据,如果超出显示滚动条,有借鉴过其他大佬的方法,感觉没有完全达到效果然后就自己补了一点代码
下面看效果
在这里插入图片描述
这个的话就是正常显示
在这里插入图片描述
这样的话就是在分辨率低或者窗口小或者标题数据很多的情况下的效果会显示滚动条
下面上代码
在这里插入图片描述
done: function () {
var allw=$(‘div[lay-id=“courseTypeTable”]’).find(‘.layui-table-header’).width()//表格总宽度
var $data = $(‘div[lay-id=“courseTypeTable”]’).find(‘.layui-table-body’).find(‘tr’).eq(0).find(‘td’);//内容
var $head = $(‘div[lay-id=“courseTypeTable”]’).find(‘.layui-table-header’).find(‘tr’).eq(0).find(‘th’);//标题
for (var i = 1; i < $data.length; i++) {//第一遍展示全部数据内容自适应宽度修改
var l1 = $data.eq(i).find(‘div’).width();//每个内容的宽度
var l2 = $head.eq(i).find(‘div’).width();//每个标题的宽度
if (l1 > l2) {//内容宽用内容、标题宽用标题
$head.eq(i).find(‘div’).width(l1);
$data.eq(i).find(‘div’).width(l1);
} else {
$data.eq(i).find(‘div’).width(l2);
$head.eq(i).find(‘div’).width(l2);
}
}
//下面是内容小于表格宽度补满
var newhead = $(‘div[lay-id=“courseTypeTable”]’).find(‘.layui-table-header’).find(‘tr’).width()//重新获取修改后标题的宽度
if(newhead<allw){//如果内容不多 不超过表格宽度
for (var i = 1; i < $data.length; i++) {//再次循环修改每一个tr的宽度
var thw = $data.eq(i).find(‘div’).width();//获取每一个tr的宽度
var pdata=(allw-newhead)/6+thw//计算每个tr应该增加的宽度 6为表格的长度-i的值
$head.eq(i).find(‘div’).width(pdata);//重新设置宽度
$data.eq(i).find(‘div’).width(pdata);
}
}
layer.closeAll(‘loading’);
}
注意的是宽度要全部设置width:“auto”,我这边是序号固定没有设置,然后标题去掉序号的长度就是6个,如果操作栏要固定的话可以再-1然后单独计算宽度,每次加载的时候都没有问题的,缺点是没有做到响应式,拉动窗口宽度没有做到监听,我觉得问题不大,希望多多指教!谢谢

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值