js实现 固定表头,拖动部分内容

本文介绍了如何使用JavaScript实现固定表头,同时让拖动的内容与表头保持同步。关键在于利用CSS的overflow属性和JavaScript事件监听。通过创建div并设置样式,将表头与表体分离,然后绑定onscroll事件,更新滚动条位置,以达到拖动内容时表头固定的效果。示例代码包括HTML结构和JavaScript实现。

1.首先了解:如何让内容可拖动

      原理很简单,用div的css属性 overflow:scroll

      给div设置固定大小,当div的内容超出范围时,会自动出现滚动条,使内容可拖动

2.然后了解:如何让 “连动的内容” 随着 “可拖动的内容” 一起连动

      设置滚动条的位置属性 scrollTop, scrollLeft

3.具体步骤:

      a. 用div将 “固定内容” , “连动的内容” , “可拖动的内容” 分离,并固定大小

      b. “连动的内容” 设置div属性 overflow:hidden ; “可拖动的内容” 设置div属性 overflow:scroll

      c. 给 “可拖动的内容” 绑定js事件 onscroll="连动div.scrollTop = 可拖动div.scrollTop"

4.将 表头 与 表体 分离到div的简洁方式:

用到的html:

<div id="div_Head1" style="width: 670px; height: 40px;"></div>

<div id="div_Body1" style="width: 670px; height:250px; overflow-y: hidden; padding: 0px; margin: 0px;">

    <asp:GridView ID="gvProductReport" runat="server"> </asp:GridView>

</div>

用到的js:

function InitGridView()
{
        var div_Head1 = document.getElementById("div_Head1");
        var tableBody1 = document.getElementById("<%= gvProductReport.ClientID %>");
        var tableHead1 = tableBody1.cloneNode(true);
        for(var i=tableHead1.rows.length-1; i>0; i--)
        {
            tableHead1.deleteRow(i);
        }
        tableBody1.deleteRow(0);
        div_Head1.appendChild(tableHead1);
}

window.onload = function(){ InitGridView(); };

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值