利用js、css、html固定table的列头不动
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的列头不动的更多相关文章
- 使用css固定table第一列
.table{width:100%;overflow-x: scroll;background-color:#7c95b5;} .fixedTable{width:160%;text-align: c ...
- JS组件系列——Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
前言:最近项目里面需要用到表格的冻结列功能,所谓“冻结列”,就是某些情况下表格的列比较多,需要固定前面的几列,后面的列滚动.遗憾的是,bootstrap table里自带的fixed column功能 ...
- jquery固定表头和列头
1.对网上的开源方法稍作了些修改 <script type="text/javascript">// <![CDATA[ function FixTable(Ta ...
- 利用js制作html table分页示例(js实现分页)
有时候table的列数太长,不利于使用者查询,所以利用JS做了一个table的分页,以下为相关代码 一.JS代码 <script type="text/javascript" ...
- 利用JS实现HTML TABLE的分页
有时候table的列数太长,不利于使用者查询,所以利用JS做了一个table的分页,以下为相关代码 一.JS代码 <script type="text/javascript" ...
- 固定Table的头部和左边的列-在Knockout Js使用场景下
要求:固定Table的头部和左边的列 场景:Knockout Js被用于绑定Table的数据源. 固定HTML表格的头部和列是一个很常见的需求.此文:http://www.cnblogs.com/so ...
- (转)supertable像excel那样固定table的表头和第一列
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"/> <title> ...
- html table 固定表头和列
/**************************************************************** jQuery 插件. 功能: 固定表格标题行或列头 Version: ...
- 利用JS脚本通过getAttribute()和setAttribute()等对CSS样式进行操作
HTML中引入CSS样式的方式有三种: 1.最常用的,引入样式表,在样式表中编写样式,引入方式如下:<link href="css/style.css" rel=" ...
随机推荐
- android 运行 python
Jython is an implementation of the Python programming language designed to run on the Java platform. ...
- U盘分区信息清除
diskpart select disk 1 clean 清除选中(优U)盘的所有信息;
- android错误系列之导出数据库出错Failed to pull selection
使用效率检视工具traceView,在导出检测文件时,出现了“failed to pull a selection”问题,网上搜索了几篇文章,有的说,是因为导出超时,我将windows-->pr ...
- 移动前端工作的那些事---前端制作篇之meta标签篇
移动端前端制作有些地方不同于互联网,这篇主要讨论的是meta标签.meta标签位于head标签之间.是主要辅助HTML结构层的.meta标签不管在互联网前端还是在移动端都起了很重要的作用.这里只讨论移 ...
- hdu 5025 Saving Tang Monk(bfs+状态压缩)
Description <Journey to the West>(also <Monkey>) is one of the Four Great Classical Nove ...
- 成功获取并更改中兴F660光猫的超级用户密码解除四台限制
上次雷雨后更换的中兴的F660光猫还是很不错的,很稳定,不过超级密码确实记不住,找了些资料,今天成功的更改了密码,简要的写出过程以备下次参考: 第一步:获取超级密码(已知用户名telecomadmin ...
- 关于缺省路由传递问题的探讨(下)[ip default-network、ip default-gateway等]
之前文章介绍的是没有路由协议的环境下,那么在有路由协议的环境下: ip default-network IGRP/EIGRP: IP Default-Network所指定的网络必须在EIGRP进程中通 ...
- 删除qq历史签名
我们在设置新的个性签名的时候之前的签名会被记录,我们可以用手机qq删除这些历史签名,告别过去,做崭新的自己. 到需要删除的历史签名, 从右至左滑动屏幕
- 从输入一个URL到页面呈现,网络上都发生了什么?
归纳一下其中涉及到前端的一些基础知识,主要包括:http协议.web标准.w3c标准等. 这个问题虽然只有两个2个动作:输入URL和呈现页面,但这背后发生了很多"有趣" ...
- 编译安装-Percona 5.6
CentOS 6.4编译安装Percona 5.6.16 Percona 下载地址:http://www.percona.com 一.卸载原有MySQL检查是否安装有MySQL Server: rpm ...