当前位置: 移动技术网 > IT编程>开发语言>JavaScript > jQuery实现表头固定效果的实例代码

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

2018年11月16日  | 移动技术网IT编程  | 我要评论

一、新建一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类库文件。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网