html表格头固定显示脚本,表格的头部固定效果通过css及jquery分别实现

1.第一种方式利用css的样式来实现表格的头部固定

复制代码代码如下:

无标题文档

.a{

position:relative;

top:expression(this.offsetParent.scrollTop); //这里的offsetParent是最近的有固定样式的父级元素,原理就是不断的刷新相对于该父级元素的scrollTop来实现头部固定

background:blue;

text-align:center;

z-index:10;

}

.mainDIV{

overflow:scroll;

height:100px;

}

列1 列2 列3 列4

...

2.第二种方法是用jquery把原来table的头隐藏,然后复制出一个一模一样的然后insertBefore到table前面

indes.html测试页面

复制代码代码如下:

qubernet@163.com_jQuery实现表头固定效果(挺不错的!!!)

.itemList

{

border: solid 1px #cccccc;

overflow: hidden

width: 100%;

border-collapse: collapse;

}

.itemList td

{

padding: 0px 0px 0px 0px;

color: #444444;

border: solid 1px #cccccc;

text-align: center;

line-height: 20px;

}

$(function() {

$.remainHead("tab1","div1");

});

列1列2 列3 列4

我是测试的数据行…………我是测试的数据行…………我是测试的数据行…………我是测试的数据行…………

....

jquery.remainHead.js 页面

复制代码代码如下:

;(function($){

$.extend({

//原理就是把原来的头给隐藏掉了,然后复制一个头出来插入到table的上面来实现头部固定

"remainHead":function(tableId,tableParentDivId){

var obj = document.getElementById("tableHeaderDiv" + tableId);

if (obj) {

jQuery(obj).remove();

}

var browserName = navigator.appName;

var ver = navigator.appVersion;

var browserVersion = parseFloat(ver.substring(ver.indexOf("MSIE") + 5, ver.lastIndexOf("Windows")));

var content = document.getElementById(tableParentDivId);

var scrollWidth = content.offsetWidth - content.clientWidth;

var tableOrg = jQuery("#" + tableId)

var table = tableOrg.clone();

table.attr("id", "cloneTable");

var tableClone = jQuery(tableOrg).find("tr").each(function() {

});

var tableHeader = jQuery(tableOrg).find("thead");

var tableHeaderHeight = tableHeader.height();

tableHeader.hide();

var colsWidths = jQuery(tableOrg).find("tbody tr:first td").map(function() {

return jQuery(this).width();

});

//alert(colsWidths.get().join(","));用get()可以获取数组的dom元素

var tableCloneCols = jQuery(table).find("thead tr:first td")

if (colsWidths.size() > 0) {

for (i = 0; i < tableCloneCols.size(); i++) {

if (i == tableCloneCols.size() - 1) {

if (browserVersion == 8.0)

tableCloneCols.eq(i).width(colsWidths[i] + scrollWidth);

else

tableCloneCols.eq(i).width(colsWidths[i]);

} else {

tableCloneCols.eq(i).width(colsWidths[i]);

}

}

}

var headerDiv = document.createElement("div");

headerDiv.appendChild(table[0]);

jQuery(headerDiv).css("height", tableHeaderHeight);

jQuery(headerDiv).css("overflow", "hidden");

jQuery(headerDiv).css("z-index", "20");

jQuery(headerDiv).css("width", "100%");

jQuery(headerDiv).attr("id", "tableHeaderDiv" + tableId);

jQuery(headerDiv).insertBefore(tableOrg.parent());

}

});

})(jQuery);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值