1、CSS

<style type="text/css">
#scroll_head {
position: absolute;
display: none;
}
</style>

2、Javascript

<script type="text/javascript">

    //该函数在上面一个table数据加载完成后调用
//把表头的宽度设置到会滚动的页头去
var copyWidth = function () {
var b = $('#data_tbody').prev().find('tr:last').find('th');
var c = $('#scroll_head').find('tr:last').find('th');
for (var i = 0; i < b.length; i++) {
var newWith = b.eq(i).width();
if ($.browser.msie) {
newWith += 1;
}
c.eq(i).width(newWith);
}
} $(function () {
$(window).scroll(function () {
if ($('#data_tbody').length > 0) {
var thead = $('#data_tbody').prev();
var thOffset = thead.offset();
var scTop = $(window).scrollTop(); //滚动条相对top的位置
if (scTop > thOffset.top) { //滚动条滚到thead及以下的位置,用临时的thead代替显示
$('#scroll_head').css('display', 'block');
$('#scroll_head').offset({ top: scTop, left: thOffset.left });
}
else { //滚动条滚到thead上的位置,用table的原始thead显示
$('#scroll_head').css('display', 'none');
}
}
});
});
</script>

3、Html内容

<div id="data_div">
<table>
@*thead内容及样式同scroll_head中的thead*@
@*thead使用深背景色,避免滚动时和tbody内容重叠显示*@
<thead>
<tr>
@*一级标题*@
<th class="tt1" colspan="2">一级1</th>
<th class="tt2" colspan="5">一级2</th>
<th class="tt3" colspan="6">一级3</th>
</tr>
<tr>
@*二级标题*@
<th style="width: 23px;">二级11</th>
<th style="width: 36px;">二级12</th>
<th class="tt" style="width: 40px;">二级21</th>
<th class="tt" style="width: 30px;">二级22</th>
<th class="tt" style="width: 30px;">二级23</th>
<th class="tt" style="width: 30px;">二级23</th>
<th class="tt" style="width: 30px;">二级24</th>
<th class="tt" style="width: 30px;">二级25</th>
<th class="tt" style="width: 30px;">二级31</th>
<th class="tt" style="width: 30px;">二级32</th>
<th class="tt" style="width: 30px;">二级33</th>
<th class="tt" style="width: 30px;">二级33</th>
<th class="tt" style="width: 30px;">二级34</th>
<th class="tt" style="width: 30px;">二级35</th>
<th class="tt" style="width: 30px;">二级36</th>
</tr>
</thead>
<tbody id="data_tbody">
数据内容,在数据加载完成后调用copyWidth()函数解决兼容性
</tbody>
</table>
</div>
<div id="scroll_head" style="display:block; top: 168px; left: 0px; position: relative;">
<table width="100%">
<thead> @*thead使用深背景色,避免滚动时和tbody内容重叠显示*@
<tr>
@*一级标题*@
<th class="tt1" colspan="2">一级1</th>
<th class="tt2" colspan="5">一级2</th>
<th class="tt3" colspan="6">一级3</th>
</tr>
<tr>
@*二级标题*@
<th style="width: 23px;">二级11</th>
<th style="width: 36px;">二级12</th>
<th class="tt" style="width: 40px;">二级21</th>
<th class="tt" style="width: 30px;">二级22</th>
<th class="tt" style="width: 30px;">二级23</th>
<th class="tt" style="width: 30px;">二级23</th>
<th class="tt" style="width: 30px;">二级24</th>
<th class="tt" style="width: 30px;">二级25</th>
<th class="tt" style="width: 30px;">二级31</th>
<th class="tt" style="width: 30px;">二级32</th>
<th class="tt" style="width: 30px;">二级33</th>
<th class="tt" style="width: 30px;">二级33</th>
<th class="tt" style="width: 30px;">二级34</th>
<th class="tt" style="width: 30px;">二级35</th>
<th class="tt" style="width: 30px;">二级36</th>
</tr>
</thead>
</table>
</div>

利用js、css、html固定table的列头不动的更多相关文章

  1. 使用css固定table第一列

    .table{width:100%;overflow-x: scroll;background-color:#7c95b5;} .fixedTable{width:160%;text-align: c ...

  2. JS组件系列——Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案

    前言:最近项目里面需要用到表格的冻结列功能,所谓“冻结列”,就是某些情况下表格的列比较多,需要固定前面的几列,后面的列滚动.遗憾的是,bootstrap table里自带的fixed column功能 ...

  3. jquery固定表头和列头

    1.对网上的开源方法稍作了些修改 <script type="text/javascript">// <![CDATA[ function FixTable(Ta ...

  4. 利用js制作html table分页示例(js实现分页)

    有时候table的列数太长,不利于使用者查询,所以利用JS做了一个table的分页,以下为相关代码 一.JS代码 <script type="text/javascript" ...

  5. 利用JS实现HTML TABLE的分页

    有时候table的列数太长,不利于使用者查询,所以利用JS做了一个table的分页,以下为相关代码 一.JS代码 <script type="text/javascript" ...

  6. 固定Table的头部和左边的列-在Knockout Js使用场景下

    要求:固定Table的头部和左边的列 场景:Knockout Js被用于绑定Table的数据源. 固定HTML表格的头部和列是一个很常见的需求.此文:http://www.cnblogs.com/so ...

  7. (转)supertable像excel那样固定table的表头和第一列

    <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"/> <title> ...

  8. html table 固定表头和列

    /**************************************************************** jQuery 插件. 功能: 固定表格标题行或列头 Version: ...

  9. 利用JS脚本通过getAttribute()和setAttribute()等对CSS样式进行操作

    HTML中引入CSS样式的方式有三种: 1.最常用的,引入样式表,在样式表中编写样式,引入方式如下:<link href="css/style.css" rel=" ...

随机推荐

  1. 【转】17种常用的JS正则表达式 非负浮点数 非负正数.

    <input type='text' id='SYS_PAGE_JumpPage' name='SYS_PAGE_JumpPage' size='3' maxlength='5' onkeyup ...

  2. KM算法详解+模板

    http://www.cnblogs.com/wenruo/p/5264235.html KM算法用来求二分图最大权完美匹配. 本文配合该博文服用更佳:趣写算法系列之--匈牙利算法 现在有N男N女,男 ...

  3. emWin(ucGui) MULTIEDIT控件的按键响应处理 worldsing

    目前没有读过ucgui的源代码,通过应用代码测试出在FRAMEWIN的控件焦点顺序是样的: 按资源列表里创建的控件,默认将焦点落在第一个可接收焦点的控件,目前知道不可接收 焦点的控件有TEXT,在FR ...

  4. HDU 1241 Oil Deposits DFS(深度优先搜索) 和 BFS(广度优先搜索)

    Oil Deposits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...

  5. initialSize,maxTotal,maxIdle,minIdle,maxWaitMillis

    初始化连接数:默认值 0 同一时刻可分配最大连接数:默认值 8 ,设置为负数时不做限制 最大空闲连接,默认值 8 ,超出连接将被释放 最小空闲连接数,默认值 0 请求连接最大等待时间(毫秒),默认值 ...

  6. How to create custom methods for use in spring security expression language annotations

    From:http://stackoverflow.com/questions/6632982/how-to-create-custom-methods-for-use-in-spring-secur ...

  7. UVa 10004:Bicoloring

    这道题要我们判断所给图是否可以用两种颜色进行染色,即"二染色“.已知所给图一定是强连通图. 分析之: 若图中无回路,则该图是一棵树,一定可以二染色. 若图中有回路,但回路有偶数个节点,仍然可 ...

  8. 开源文件比较工具:WinMerge、KDiff3、diffuse

    为了寻找免费的BeyondCompare的替代品,最后经过实用,找到如下一些: 1.diffuse 感受:如果仅仅是比较两个文本类的文件,这个软件也就够用了. 安装好后,对着文件点击右键,会出现“Op ...

  9. sql server对并发的处理-乐观锁和悲观锁【粘】

    假如两个线程同时修改数据库同一条记录,就会导致后一条记录覆盖前一条,从而引发一些问题. 例如: 一个售票系统有一个余票数,客户端每调用一次出票方法,余票数就减一. 情景: 总共300张票,假设两个售票 ...

  10. Cipher Message

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=34121#problem/C // File Name: c.cpp // Author: ...