jQuery實現表頭固定效果的執行個體代碼

來源:互聯網
上載者:User

 一、建立一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("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());

}

 

 

二、Html執行個體檔案

內容如下:

 

 代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://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", "div1");

});

</script>

</head>

<body>

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

<div style=" height: 250px; overflow:scroll;" id="div1">

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

</div>

</form>

</body>

</html>

 

注意:記得引入jQuery類庫檔案。

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。