.fixedHeaderTr{
position:relative;
<!--top:expression(this.offsetParent.scrollTop); -->
}
.fixedHeaderTd{
position:relative;
left:expression(this.offsetParent.offsetParent.scrollLeft);
}将fixedHeaderTr样式加到每一行上,将fixedHeaderTd加到你要冻结的每一个TD上就可以了,你要冻结一列那么就在这列的每行的这个TD上加上就可以了,刚研究的,呵呵,测试通过!~
建议lz通过DOM来控制,而不要单纯的使用class=“”
position:relative;
<!--top:expression(this.offsetParent.scrollTop); -->
}
.fixedHeaderTd{
position:relative;
left:expression(this.offsetParent.offsetParent.scrollLeft);
}将fixedHeaderTr样式加到每一行上,将fixedHeaderTd加到你要冻结的每一个TD上就可以了,你要冻结一列那么就在这列的每行的这个TD上加上就可以了,刚研究的,呵呵,测试通过!~
建议lz通过DOM来控制,而不要单纯的使用class=“”
<HTML>
<HEAD>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
.fixedHeaderTr{
position:relative;
<!--top:expression(this.offsetParent.scrollTop);-->
}
.fixedHeaderTd{
position:relative;
left:expression(this.offsetParent.offsetParent.scrollLeft);
}
.mainDiv{
overflow:auto; scrollbar-face-color:9999ff;
}
</style>
</HEAD>
<body>
<br>
<div class="mainDiv" style="height:150px;width:200px;">
<table border="1">
<tr class="fixedHeaderTr">
<td class="fixedHeaderTd" style="background-color:#CCCCCC;">
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
</tr>
<tr class="fixedHeaderTr">
<td class="fixedHeaderTd">
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
</tr>
<tr>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
</tr>
<tr>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
</tr>
<tr>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
</tr>
<tr>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td> </tr>
<tr>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
</tr>
<tr>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
</tr>
<tr>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
<td>
aaaaaaaaaa
</td>
</tr>
</table>
</div>
</body>
</HTML>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>lock column</title>
<meta name="generator" content="editplus" />
<meta name="author" content="[email protected]" />
<meta name="keywords" content="javascript" />
<meta name="description" content="for javascript region of csdn" />
<style type="text/css">
table {
border: #a4cdf2 1px solid;
}
td {
border: #a4cdf2 1px solid;
font-family: "courier new";
font-size: 11pt;
}
td.locked {
position: relative;
left: expression(document.getElementById("divTableContainer").scrollLeft);
background-color: #ffff82;
}
</style>
</head> <body>
<h3>点击首行锁定列,再次点击解除锁定!</h3>
<div id="divTableContainer" style="width: 150px; overflow-x: scroll;">
<table cellpadding="0" cellspacing="0" id="tabTarget">
<tr>
<td nowrap>Column A</td>
<td nowrap>Column B</td>
<td nowrap>Column C</td>
</tr>
<tr>
<td>R1.1</td>
<td>R1.2</td>
<td>R1.3</td>
</tr>
<tr>
<td>R2.1</td>
<td>R2.2</td>
<td>R2.3</td>
</tr>
<tr>
<td>R3.1</td>
<td>R3.2</td>
<td>R3.3</td>
</tr>
</table>
</div>
</body>
<script type="text/javascript">
<!--
var oTable = document.getElementById("tabTarget");
for (var i=0; i<oTable.rows[0].cells.length; i++)
{
oTable.rows[0].cells[i].onmouseover = function() {
this.style.cursor = "hand";
this.style.backgroundColor = "#BCFEC8";
}
oTable.rows[0].cells[i].onmouseout = function() {
this.style.backgroundColor = "";
}
oTable.rows[0].cells[i].onclick = function() {
var currentCellIndex = this.cellIndex;
var cellClassName = "";
if (this.className == "")
{
cellClassName = "locked";
} for (var i=0; i<oTable.rows.length; i++)
{
oTable.rows[i].cells[currentCellIndex].className = cellClassName;
}
}
}
//-->
</script>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>lock column</title>
<meta name="generator" content="editplus" />
<meta name="author" content="[email protected]" />
<meta name="keywords" content="javascript" />
<meta name="description" content="for javascript region of csdn" />
<style type="text/css">
table {
border: #a4cdf2 1px solid;
}
td {
border: #a4cdf2 1px solid;
font-family: "courier new";
font-size: 11pt;
}
td.locked {
position: relative;
left: expression(document.getElementById("divTableContainer").scrollLeft + "px");
background-color: #ffff82;
}
</style>
</head> <body>
<h3>点击首行锁定列,再次点击解除锁定!注:每次只能锁定一列!IE 7.0 下测试通过!</h3>
<div id="divTableContainer" style="width: 298px; overflow-x: scroll;">
<table cellpadding="0" cellspacing="0" id="tabTarget">
<tr>
<td nowrap>Column A</td>
<td nowrap>Column B</td>
<td nowrap>Column C</td>
<td nowrap>Column D</td>
<td nowrap>Column E</td>
</tr>
<tr>
<td>R1.1</td>
<td>R1.2</td>
<td>R1.3</td>
<td>R1.4</td>
<td>R1.5</td>
</tr>
<tr>
<td>R2.1</td>
<td>R2.2</td>
<td>R2.3</td>
<td>R2.4</td>
<td>R2.5</td>
</tr>
<tr>
<td>R3.1</td>
<td>R3.2</td>
<td>R3.3</td>
<td>R3.4</td>
<td>R3.5</td>
</tr>
</table>
</div>
</body>
<script type="text/javascript">
<!--
var oTable = document.getElementById("tabTarget");
var lockedCellIndex = -1;
for (var i=0; i<oTable.rows[0].cells.length; i++)
{
oTable.rows[0].cells[i].originalCellIndex = oTable.rows[0].cells[i].cellIndex; oTable.rows[0].cells[i].onmouseover = function() {
this.style.cursor = "hand";
this.style.backgroundColor = "#bcfec8";
} oTable.rows[0].cells[i].onmouseout = function() {
this.style.backgroundColor = "";
} oTable.rows[0].cells[i].onclick = function() {
this.style.backgroundColor = ""; var currentCellIndex = this.cellIndex;
var cellClassName = "locked";
var curRow; if (lockedCellIndex != -1)
{
for (var i=0; i<oTable.rows.length; i++)
{
curRow = oTable.rows[i];
curRow.cells[0].className = ""; // 回到原位。
if (lockedCellIndex != 0)
{
if (lockedCellIndex == (curRow.cells.length-1))
{
curRow.appendChild(curRow.cells[0]);
}
else
{
curRow.insertBefore(curRow.cells[0], curRow.cells[lockedCellIndex+1]);
}
}
} if (lockedCellIndex == this.originalCellIndex)
{
lockedCellIndex = -1;
return;
}
} for (var i=0; i<oTable.rows.length; i++)
{
curRow = oTable.rows[i]; curRow.cells[this.originalCellIndex].className = cellClassName; if (this.originalCellIndex != 0)
{
curRow.insertBefore(curRow.cells[this.originalCellIndex], curRow.cells[0]);
}
} lockedCellIndex = this.originalCellIndex;
}
}
//-->
</script>
</html>