梅花雨等高手请进!我修改了一下固定表格标题栏代码,还有问题!

cqxhhe 2004-03-16 12:16:23
试试resize窗口!
代码原自于下面的贴子:
http://expert.csdn.net/Expert/topic/2828/2828027.xml?temp=.837887

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=GBK">
<SCRIPT language=JavaScript>
<!--
function getTop(e){var t=e.offsetTop;while(e=e.offsetParent){t+=e.offsetTop}return t}
function getLeft(e){var l=e.offsetLeft;while(e=e.offsetParent){l+=e.offsetLeft}return l}

function DrawTable(scrTable,newTable,iStart,iEnd,jEnd){
var i,j,k=0,newTR,newTD,intWidth=0,intHeight=0;
newTable.mergeAttributes(scrTable);
for (i=iStart;i<iEnd;i++){
newTR=newTable.insertRow(k)
newTR.mergeAttributes(scrTable.rows[i]);
intHeight += scrTable.rows[i].offsetHeight;
intWidth=0;
for(j=0;j<(jEnd==-1?scrTable.rows[i].cells.length:jEnd);j++){
newTD=scrTable.rows[i].cells[j].cloneNode(true);
intWidth+= scrTable.rows[i].cells[j].offsetWidth;
newTR.insertBefore(newTD);
newTD.style.pixelWidth=scrTable.rows[i].cells[j].offsetWidth;
}
k++
}
//newTable.style.pixelWidth=intWidth; //
//newTable.style.pixelHeight=intHeight;
}

function LockTable(arTable,ColNum,RowHead,RowFoot){
arTable.HeadRow=RowHead;
var objDivMaster=arTable.parentElement;
if(objDivMaster.tagName!='DIV')return;
if((arTable.offsetHeight > objDivMaster.offsetHeight)&&(arTable.offsetWidth > objDivMaster.offsetWidth)){
if((ColNum > 0) && (RowHead > 0)){
var objTableLH=document.createElement("TABLE");
var newTBody=document.createElement("TBODY");
objTableLH.insertBefore(newTBody);
objTableLH.id="objTableLH";
objDivMaster.parentElement.insertBefore(objTableLH);
DrawTable(arTable,objTableLH,0,RowHead,ColNum)
objTableLH.srcTable=arTable;
with(objTableLH.style){
zIndex=804;
position='absolute'
pixelLeft=objDivMaster.offsetLeft;
pixelTop=objDivMaster.offsetTop;
}
}

if((ColNum > 0) && (RowFoot > 0)){
var objTableLF=document.createElement("TABLE");
var newTBody=document.createElement("TBODY");
objTableLF.insertBefore(newTBody);
objTableLF.id="objTableLF";
objDivMaster.parentElement.insertBefore(objTableLF);
DrawTable(arTable,objTableLF,arTable.rows.length - RowFoot,arTable.rows.length,ColNum)
objTableLF.srcTable=arTable;
with(objTableLF.style){
zIndex=803;
position='absolute'
pixelLeft=objDivMaster.offsetLeft;
pixelTop=objDivMaster.offsetTop + objDivMaster.offsetHeight - objTableLF.offsetHeight - 16;
}
}
}

if((RowHead > 0) && (arTable.offsetHeight > objDivMaster.offsetHeight)){
var DivHead=document.createElement("DIV");
objDivMaster.parentElement.insertBefore(DivHead);
var objTableHead=document.createElement("TABLE");
var newTBody=document.createElement("TBODY");
objTableHead.id="HeadTar";
objTableHead.style.position="relative"
objTableHead.insertBefore(newTBody);
DivHead.insertBefore(objTableHead);
DrawTable(arTable,objTableHead,0,RowHead,-1)
HeadTar.srcTable=arTable;
with(DivHead.style){
overflow="hidden";
zIndex=802;
pixelWidth=objDivMaster.offsetWidth - 16
position='absolute';
pixelLeft=getLeft(objDivMaster);//objDivMaster.offsetLeft;
pixelTop=getTop(objDivMaster) ;//objDivMaster.offsetTop;
}
objDivMaster.attachEvent("onscroll",divScroll1);
}

if((RowFoot > 0) && (arTable.offsetHeight > objDivMaster.offsetHeight)){
var DivFoot=document.createElement("DIV");
objDivMaster.parentElement.insertBefore(DivFoot);
var objTableFoot=document.createElement("TABLE");
var newTBody=document.createElement("TBODY");
objTableFoot.insertBefore(newTBody);
objTableFoot.id="FootTar";
objTableFoot.style.position="relative"
DivFoot.insertBefore(objTableFoot);
DrawTable(arTable,objTableFoot,arTable.rows.length - RowFoot,arTable.rows.length,-1)
objTableFoot.srcTable=arTable;
with(DivFoot.style){
overflow="hidden";
zIndex=801;
pixelWidth=objDivMaster.offsetWidth - 16
position='absolute'
pixelLeft=objDivMaster.offsetLeft;
pixelTop=objDivMaster.offsetTop + objDivMaster.offsetHeight - DivFoot.offsetHeight - 16;
}
objDivMaster.attachEvent("onscroll",divScroll2);
}

if((ColNum > 0) && (arTable.offsetWidth > objDivMaster.offsetWidth)){
var DivLeft=document.createElement("DIV");
objDivMaster.parentElement.insertBefore(DivLeft);
var objTableLeft=document.createElement("TABLE");
var newTBody=document.createElement("TBODY");
objTableLeft.insertBefore(newTBody);
objTableLeft.id="LeftTar";
objTableLeft.style.position="relative";
DivLeft.insertBefore(objTableLeft);
DrawTable(arTable,objTableLeft,0,arTable.rows.length,ColNum)
LeftTar.srcTable=arTable;
with(DivLeft.style){
overflow="hidden";
zIndex=800;
pixelWidth=objDivMaster.offsetWidth - 16
pixelHeight=objDivMaster.offsetHeight - 16
position='absolute'
pixelLeft=objDivMaster.offsetLeft;
pixelTop=objDivMaster.offsetTop;
}
objDivMaster.attachEvent("onscroll",divScroll3);
}
}

function divScroll1(){
var tbl=document.all('HeadTar').srcTable,parDiv=tbl.parentElement;
while(parDiv.tagName!='DIV')parDiv=parDiv.parentElement;
document.all('HeadTar').style.pixelLeft= -parDiv.scrollLeft;
}

function divScroll2(){
var tbl=document.all('FootTar').srcTable,parDiv=tbl.parentElement;
while(parDiv.tagName!='DIV')parDiv=parDiv.parentElement;
document.all('FootTar').style.pixelLeft= -parDiv.scrollLeft;
}

function divScroll3(){
var tbl=document.all('LeftTar').srcTable,parDiv=tbl.parentElement;
while(parDiv.tagName!='DIV')parDiv=parDiv.parentElement;
document.all('LeftTar').style.pixelTop= -parDiv.scrollTop;
}
//-->
</SCRIPT>

<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY>
<table width="75%" border="1">
<tr>
<td width="37%"> </td>
<td width="27%"> </td>
<td width="36%"> </td>
</tr>
<tr>
<td> </td>
<td>
<DIV style="MARGIN: 2pt; OVERFLOW: scroll; WIDTH: 130px; HEIGHT: 100px">
<TABLE id=tbl cellSpacing=1 cellPadding=0 bgColor=#660000 border=1>
<TBODY>
<TR>
<TD noWrap bgColor=#bbbbbb>標題一</TD>
<TD noWrap bgColor=#bbbbbb>標題二</TD>
<TD noWrap bgColor=#bbbbbb>標題三</TD>
<TD noWrap bgColor=#bbbbbb>標題四</TD></TR>
<TR>
<TD bgColor=#bbbbbb>內容A</TD>
<TD bgColor=#ffffff>內容B</TD>
<TD bgColor=#ffffff>內容C</TD>
<TD bgColor=#ffffff>內容D</TD></TR>
<TR>
<TD bgColor=#bbbbbb>內容A</TD>
<TD bgColor=#ffffff>內容B</TD>
<TD bgColor=#ffffff>內容C</TD>
<TD bgColor=#ffffff>內容D</TD></TR>
<TR>
<TD bgColor=#bbbbbb>內容A</TD>
<TD bgColor=#ffffff>內容B</TD>
<TD bgColor=#ffffff>內容C</TD>
<TD bgColor=#ffffff>內容D</TD></TR>
<TR>
<TD bgColor=#bbbbbb>內容A</TD>
<TD bgColor=#ffffff>內容B</TD>
<TD bgColor=#ffffff>內容C</TD>
<TD bgColor=#ffffff>內容D</TD></TR>
<TR>
<TD bgColor=#bbbbbb>內容A</TD>
<TD bgColor=#ffffff>內容B</TD>
<TD bgColor=#ffffff>內容C</TD>
<TD bgColor=#ffffff>內容D</TD></TR>
<TR>
<TD bgColor=#bbbbbb>內容A</TD>
<TD bgColor=#ffffff>內容B</TD>
<TD bgColor=#ffffff>內容C</TD>
<TD bgColor=#ffffff>內容D</TD></TR>
<TR>
<TD bgColor=#bbbbbb>內容A</TD>
<TD bgColor=#ffffff>內容B</TD>
<TD bgColor=#ffffff>內容C</TD>
<TD bgColor=#ffffff>內容D</TD></TR>
<TR>
<TD noWrap bgColor=#bbbbbb>標題一</TD>
<TD noWrap bgColor=#bbbbbb>標題二</TD>
<TD noWrap bgColor=#bbbbbb>標題三</TD>
<TD noWrap bgColor=#bbbbbb>標題四</TD></TR></TBODY></TABLE></DIV>
</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>

<SCRIPT language=javascript>
LockTable(tbl,0,1,0);
</SCRIPT>
</BODY></HTML>
...全文
43 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xunyiren 2004-03-16
  • 打赏
  • 举报
回复
up
Leemaasn 2004-03-16
  • 打赏
  • 举报
回复
梅花老大?
web版的?

似乎沒有看到jsp的信息嘛?
cqxhhe 2004-03-16
  • 打赏
  • 举报
回复
如何在resize窗口时修正位置???
cqxhhe 2004-03-16
  • 打赏
  • 举报
回复
up
cqxhhe 2004-03-16
  • 打赏
  • 举报
回复
那位老大帮忙把这个贴子转到Javascript版??
cqxhhe 2004-03-16
  • 打赏
  • 举报
回复
Sorry 发错地方了

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧