js固定表格表头(高扩展性)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0px;
            padding: 0px;
        }
        .nomal_table_wrap{
            margin-top: 20%;
            max-height: 400px;
            width: 600px;
            overflow:auto;
            text-align: center;
        }
    </style>
</head>
<body>
<div class="nomal_table_wrap">
	<table>
            <thead>
                <tr>
                    <th>Pvalue</th>
                    <th>avg_log2FC</th>
                    <th>PC_1</th>
                    <th>PC_2</th>
                    <th>pvalue_adjust</th>
                    <th>Cluster</th>
                    <th>Gene</th>
                </tr>
            </thead>
            <tbody>
                <tr style="">
                    <td>0.0</td>
                    <td>1.0440443913178</td>
                    <td>0.919</td>
                    <td>0.688</td>
                    <td>0.0</td>
                    <td>0</td>
                    <td>Ccl6</td>
                </tr>
                <tr style="">
                    <td>3.6769078919568776e-289</td>
                    <td>0.425226842127117</td>
                    <td>0.924</td>
                    <td>0.6809999999999999</td>
                    <td>7.3538157839137455e-286</td>
                    <td>0</td>
                    <td>Ifitm6</td>
                </tr>
                <tr style="">
                    <td>1.2978826219166792e-279</td>
                    <td>0.621879312333146</td>
                    <td>0.93</td>
                    <td>0.642</td>
                    <td>2.595765243833369e-276</td>
                    <td>0</td>
                    <td>Mmp9</td>
                </tr>
                <tr style="">
                    <td>9.708758725898096e-263</td>
                    <td>0.7025738550516939</td>
                    <td>0.9440000000000001</td>
                    <td>0.69</td>
                    <td>1.941751745179619e-259</td>
                    <td>0</td>
                    <td>Hp</td>
                </tr>
                <tr style="">
                    <td>1.3321264919333692e-213</td>
                    <td>0.36503651446095203</td>
                    <td>0.772</td>
                    <td>0.534</td>
                    <td>2.6642529838667285e-210</td>
                    <td>0</td>
                    <td>Ly6g</td>
                </tr>
                <tr style="">
                    <td>1.1899389853453497e-160</td>
                    <td>0.44984695722058504</td>
                    <td>0.6</td>
                    <td>0.392</td>
                    <td>2.379877970690689e-157</td>
                    <td>0</td>
                    <td>Tnfaip6</td>
                </tr>
                <tr style="">
                    <td>2.0442629031150496e-141</td>
                    <td>0.361024169105155</td>
                    <td>0.968</td>
                    <td>0.7390000000000001</td>
                    <td>4.0885258062300996e-138</td>
                    <td>0</td>
                    <td>Pglyrp1</td>
                </tr>
                <tr style="">
                    <td>9.029976209358908e-132</td>
                    <td>0.874864750429788</td>
                    <td>0.588</td>
                    <td>0.40700000000000003</td>
                    <td>1.8059952418717797e-128</td>
                    <td>0</td>
                    <td>2010005H15Rik</td>
                </tr>
                <tr style="">
                    <td>2.908606449302709e-129</td>
                    <td>1.1538669448128798</td>
                    <td>0.813</td>
                    <td>0.7120000000000001</td>
                    <td>5.817212898605418e-126</td>
                    <td>0</td>
                    <td>Cxcl3</td>
                </tr>
                <tr style="">
                    <td>3.2702945292170992e-124</td>
                    <td>1.17055205604369</td>
                    <td>0.723</td>
                    <td>0.5660000000000001</td>
                    <td>6.540589058434208e-121</td>
                    <td>0</td>
                    <td>Gm5483</td>
                </tr>
                <tr style="">
                    <td>3.423654043287389e-114</td>
                    <td>0.782310170841121</td>
                    <td>0.556</td>
                    <td>0.376</td>
                    <td>6.84730808657479e-111</td>
                    <td>0</td>
                    <td>Csf3</td>
                </tr>
                <tr style="">
                    <td>7.701484507342318e-94</td>
                    <td>0.59063513184087</td>
                    <td>0.821</td>
                    <td>0.665</td>
                    <td>1.5402969014684598e-90</td>
                    <td>0</td>
                    <td>Il1a</td>
                </tr>
                <tr style="">
                    <td>4.5048697806101595e-90</td>
                    <td>0.29202088725208597</td>
                    <td>0.893</td>
                    <td>0.8009999999999999</td>
                    <td>9.009739561220318e-87</td>
                    <td>0</td>
                    <td>Ctsd</td>
                </tr>
                <tr style="">
                    <td>1.2299309120103197e-86</td>
                    <td>0.36780280857721</td>
                    <td>0.526</td>
                    <td>0.41200000000000003</td>
                    <td>2.4598618240206392e-83</td>
                    <td>0</td>
                    <td>Ereg</td>
                </tr>
                <tr style="">
                    <td>3.200747163318089e-84</td>
                    <td>0.43500581037004604</td>
                    <td>0.614</td>
                    <td>0.505</td>
                    <td>6.401494326636189e-81</td>
                    <td>0</td>
                    <td>Stfa2</td>
                </tr>
            </tbody>
        </tbale>
</div>

    <script>
        var dv = document.getElementsByClassName("nomal_table_wrap")[0];
        dv.children[0].children[0].style.backgroundColor =  "#ddd";
        dv.children[0].children[0].style.transform = 'translateY(-3px)';
        dv.onscroll = function(){
            var ofs = dv.scrollTop-3; //设置3px偏移量,不然表头会有可见滚动小缺口
            dv.children[0].children[0].style.transform = 'translateY(' + ofs +'px)';
        }
    </script>
</body>
</html>
锁定表头固定左边列,原生JS原创代码 需要注意的问题: 1.表格的宽度以及表格每一列的宽度需要固定(特殊情况除外:当表格列数少并且表格总宽度明显小于表格父容器的宽度时,也就是表格列不存在自动换行的问题) 2.表格父容器尺寸大小改变时,需要调用 setBoxSize 方法,目的是判断父容器是否出现滚动条 1.1 修正了对IE6、IE7的兼容问题 1.2 修正了固定行、列的样式问题 1.3 IE6/IE7浏览器 不启用该功能 1.4 增加了拆分线, 修正了重复生成锁定行列的问题以及生成错位的问题, 修正了行、列事件无法复制的问题, 增加了IE6/IE7/IE8 启用设置参数(ieLowVersionEnabled: true|false) ,默认不启用, 注:IE6/7/8锁定表头 由于兼容性问题,有些情况下会有一些错位的问题 1.5 增加了 显示/隐藏功能,修正了非IE浏览器下列宽错位问题 1.6 修正了当有合并单元格时,锁定单元格错位的问题,修正了表格行数较多时的性能问题 1.7 表格单元格可以不指定宽度(锁定时,取实际的单元格宽度),当单元格的左右两边的borderWidth不一样时,会有一些错位 若单元格宽度是固定的,可以在第3个参数(config)中指定 isFixedSize:true 修正表头列未锁定的Bug 1.8 修正表格含有thead时的样式丢失问题,以及行数设置问题,修正thead/tbody行归属问题 1.9 移除tbTopLeft的边框线 修正表格cellpadding/cellspacing的设置问题 修复Firefox下的padding导致的错位问题 修复thead复制没有底部分割线的问题 修复thead复制时无背景色的问题 增加复选框同步功能(如果是JS代码设置复选框选中,需要调用 .setCheckBoxSync()方法) .setCheckBoxSync 方法参数说明:4种参数 1) 复选框控件(html object)数组 2) 复选框控件(html object) 3) 复选框控件ID (string) 4) 空参数(尽量不用空参数)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值