JS实现可改变列宽的table实例

 

<!DOCTYPE HTML> 
<html> 
<head> 
<meta charset="gbk"> 
<title>table</title> 
</head> 
<body> 
<table id="tb_1" cellspacing="0" cellpadding="2" width="100%" border="1"> 
<tbody> 
<tr align="center" bgcolor="#dcdcdc"> 
<td style="width:100px;">用户编号</td> 
<td>试用时间</td><td>转正时间</td><td>性别</td><td>姓名拼音</td> 
<td>生日时间</td><td>民族</td><td>身高</td> 
</tr> 
<tr> 
<td>2000001</td> 
<td>1997-3-13</td><td>1997-3-13</td><td>1</td><td>WZJ</td> 
<td>1965-3-13</td><td></td><td>171</td> 
</tr> 
<tr> 
<td>2000045</td> 
<td>2001-2-15</td><td>2001-3-15</td><td>0</td><td>WY</td> 
<td>1978-8-5</td><td></td><td>162</td> 
</tr> 
<tr> 
<td>2000046</td> 
<td>2001-2-23</td><td>2001-3-23</td><td>0</td><td>LQ</td> 
<td>2001-2-23</td><td></td><td>171</td> 
</tr> 
</tbody> 
</table> 
<script type="text/javascript"> 
var tTD; //用来存储当前更改宽度的Table Cell,避免快速移动鼠标的问题 
var table = document.getElementById("tb_1"); 
for (j = 0; j < table.rows[0].cells.length; j++
table.rows[
0].cells[j].onmousedown = function () 
//记录单元格 
tTD = this
if (event.offsetX > tTD.offsetWidth - 10
tTD.mouseDown 
= true
tTD.oldX 
= event.x; 
tTD.oldWidth 
= tTD.offsetWidth; 
}
 
//记录Table宽度 
//
table = tTD; while (table.tagName != ‘TABLE') table = table.parentElement; 
//
tTD.tableWidth = table.offsetWidth; 
}

table.rows[
0].cells[j].onmouseup = function () 
//结束宽度调整 
if (tTD == undefined) tTD = this
tTD.mouseDown 
= false
tTD.style.cursor 
= 'default'; 
}

table.rows[
0].cells[j].onmousemove = function () 
//更改鼠标样式 
if (event.offsetX > this.offsetWidth - 10
this.style.cursor = 'col-resize'; 
else 
this.style.cursor = 'default'; 
//取出暂存的Table Cell 
if (tTD == undefined) tTD = this
//调整宽度 
if (tTD.mouseDown != null && tTD.mouseDown == true
tTD.style.cursor 
= 'default'; 
if (tTD.oldWidth + (event.x - tTD.oldX)>0
tTD.width 
= tTD.oldWidth + (event.x - tTD.oldX); 
//调整列宽 
tTD.style.width = tTD.width; 
tTD.style.cursor 
= 'col-resize'; 
//调整该列中的每个Cell 
table = tTD; while (table.tagName != 'TABLE') table = table.parentElement; 
for (j = 0; j < table.rows.length; j++
table.rows[j].cells[tTD.cellIndex].width 
= tTD.width; 
}
 
//调整整个表 
//
table.width = tTD.tableWidth + (tTD.offsetWidth – tTD.oldWidth); 
//
table.style.width = table.width; 
}
 
}

}
 
</script> 
</body> 
</html> 


posted on 2013-09-01 23:27 我为J狂 阅读(866) 评论(1)  编辑  收藏 所属分类: Web

评论

# re: JS实现可改变列宽的table实例 2013-11-23 18:16 凤凰

很好,能用!谢谢!!  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

常用链接

留言簿(11)

随笔分类(48)

文章分类(29)

常去逛逛

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜