欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jQuery实现表头固定效果的实例代码

程序员文章站 2022-10-31 17:48:16
一、新建一js文件jquery_fixedtablehead.js 内容如下:   . 代码如下: jquery.fn.clonetableheader = function(table...

一、新建一js文件jquery_fixedtablehead.js

内容如下:

 

. 代码如下:


jquery.fn.clonetableheader = 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();

});

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("p");

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());

}

 

 

二、html实例文件

内容如下:

 

. 代码如下:


<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "https://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">

 

<html xmlns="https://www.w3.org/1999/xhtml">

<head runat="server">

<title>qubernet@163.com_jquery实现表头固定效果(挺不错的!!!)</title>

 

<script src="jquery-1.3.2.min.js" type="text/javascript"></script>

 

<script src="jquery_fixedtablehead.js" type="text/javascript"></script>

 

<style type="text/css">

.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;

}

</style>

<script type="text/javascript">

jquery(function() {

jquery.fn.clonetableheader("tab1", "p1");

});

</script>

</head>

<body>

<form id="form1" runat="server">

<p style=" height: 250px; overflow:scroll;" id="p1">

<table cellpadding="0" id="tab1" cellspacing="0" border="0" class="itemlist">

<thead>

<tr style="background-color: #eeeeee; margin: 0px; line-height: 20px; font-weight: bold;

padding: 0px 0px 0px 0px;">

<td>

列1

</td>

<td>

列2

</td>

<td>

列3

</td>

<td>

列4

</td>

</tr>

</thead>

<tbody>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

<tr><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td><td>我是测试的数据行…………</td></tr>

</tbody>

</table>

</p>

</form>

</body>

</html>

注意:记得引入jquery类库文件。