layui多表头加固定列

layui下载:http://layui.88662.top/index.html

代码:
js:

function loadTable() {
    //默认加载普通表格

    //加载固定列加多表头表格
    loadTablePage($("#table-guding-duo")[0]);
}

let tableData = undefined;
function getTableData() {
    if (tableData == undefined) {
        $.ajax({
            url: "../data/user.json",
            type: "get",
            async: false,
            success: function (res) {
                tableData = res.data;
            }
        })
    }
    return tableData;
}

/** 加载具体数据 */
function loadTablePage(box) {
    box.innerHTML = "";
    let data = tableData;
    if (data == undefined) {
        data = getTableData();
    }
    let cols = setTable(box);

    let elem = document.createElement("div");
    elem.className = "dataTable";
    box.appendChild(elem);

    layui.use("table",function(){
        let table = layui.table;
        table.render({
            elem:elem,
            data:data,
            width:500,
            height:300,
            even: true,
            cols:cols,
            page:true
        })
    })
}
/** 设置表 */
function setTable(box) {
    let type = parseInt(box.getAttribute("data-type"));    
    let res = [];
    switch (type) {
        case 1://普通表格

            break;
        case 2://固定列

            break;
        case 3://多表头

            break;
        case 4://固定列加多表头
            res = [
                [
                    {type:"numbers",title:"序号",fixed:"left",align:"center",rowspan:2,width:80},
                    {field:"",title:"基本信息",colspan:3,align:"center",width:300},
                    {field:"",title:"其它信息",colspan:2,align:"center",width:200}
                ],
                [
                    {field:"name",title:"姓名",align:"center",width:100},
                    {field:"age",title:"年龄",align:"center",width:100},
                    {field:"sex",title:"性别",align:"center",width:100},
                    {field:"nickname",title:"昵称",align:"center",width:100},
                    {field:"hobby",title:"爱好",align:"center",width:100}
                ]
            ];
            break;

    }
    return res;
}

html:

<div class="layui-tab layui-tab-card" id="table-card">
        <ul class="layui-tab-title">
            <li class="">普通表格</li>
            <li>固定列</li>
            <li>多表头</li>
            <li class="layui-this">固定列加多表头</li>
        </ul>
        <div class="layui-tab-content" id="table-con">
            <div class="layui-tab-item " id="table-putong" data-type="1"></div>
            <div class="layui-tab-item" id="table-guding" data-type="2"></div>
            <div class="layui-tab-item" id="table-duo" data-type="3"></div>
            <div class="layui-tab-item layui-show" id="table-guding-duo" data-type="4"></div>
        </div>
    </div>

user.json

{
    "data":[
        {"name":"张三","age":20,"sex":"男","nickname":"zs","hobby":"看书"},
        {"name":"李四","age":22,"sex":"男","nickname":"ls"},
        {"name":"张三","age":20,"sex":"男","nickname":"zs"},
        {"name":"李四","age":22,"sex":"男","nickname":"ls"},
        {"name":"张三","age":20,"sex":"男","nickname":"zs"},
        {"name":"张三","age":20,"sex":"男","nickname":"zs","hobby":"看书"},
        {"name":"李四","age":22,"sex":"男","nickname":"ls"},
        {"name":"张三","age":20,"sex":"男","nickname":"zs"},
        {"name":"李四","age":22,"sex":"男","nickname":"ls"},
        {"name":"张三","age":20,"sex":"男","nickname":"zs"},
        {"name":"张三","age":20,"sex":"男","nickname":"zs","hobby":"看书"},
        {"name":"李四","age":22,"sex":"男","nickname":"ls"},
        {"name":"张三","age":20,"sex":"男","nickname":"zs"},
        {"name":"李四","age":22,"sex":"男","nickname":"ls"},
        {"name":"张三","age":20,"sex":"男","nickname":"zs"}
    ]
}

效果:
在这里插入图片描述

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过使用CSS的position属性和JavaScript来实现layui table表头和第一固定,其他可以滚动的效果。具体实现步骤如下: 1. 首先,在layui table中,需要在HTML中添一个div元素,用来包裹表格。例如: ```html <div class="table-wrapper"> <table class="layui-table"> <!-- 表格内容 --> </table> </div> ``` 2. 在CSS中,需要对表格进行样式设置,包括表格的宽度、高度和边框等样式,同时需要设置表头和第一的position属性为fixed,以实现固定效果。例如: ```css .table-wrapper { width: 100%; height: 500px; overflow: auto; position: relative; } .layui-table thead tr { position: fixed; top: 0; z-index: 1; } .layui-table tbody td:first-child { position: sticky; left: 0; } ``` 3. 在JavaScript中,需要实现滚动事件,当表格内容滚动时,将表头和第一的位置进行调整,以保持固定效果。例如: ```javascript var wrapper = document.querySelector('.table-wrapper'); var table = document.querySelector('.layui-table'); var thead = table.querySelector('thead tr'); var tbody = table.querySelector('tbody'); var firstColumn = tbody.querySelector('td:first-child'); wrapper.addEventListener('scroll', function() { thead.style.transform = 'translateY(' + this.scrollTop + 'px)'; firstColumn.style.transform = 'translateX(' + this.scrollLeft + 'px)'; }); ``` 通过以上步骤,即可实现layui table表头和第一固定,其他可以滚动的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值