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

本文为大家详细介绍下通过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>

时间: 2024-09-20 00:05:12

JS实现可改变列宽的table实例的相关文章

JS实现可改变列宽的table实例_javascript技巧

复制代码 代码如下: <!DOCTYPE HTML> <html> <head> <meta charset="gbk"> <title>table</title> </head> <body> <table id="tb_1" cellspacing="0" cellpadding="2" width="100%&

开放问题-VS动态添加的表格如何改变列宽?

问题描述 VS动态添加的表格如何改变列宽? 我用VS动态添加了一个表格,由于一些列的内容较长,没办法全部看到,我想问下如何拖拉实现改变列宽- 解决方案 js动态添加表格的行与列 解决方案二: 仿Microsoft Excel单元格拖拽修改表格列宽 解决方案三: 我现在也想做个这样的表格,请问你是用的哪种控件

Excel2007基础教程:改变列宽和行高

Excel2007基础教程:改变列宽和行高 经常需要改变列宽和行高.例如,可以将列变窄以在打印页中容纳更多信息.或者您可能想增加行的高度来创建一个"双倍空间"的效果. Excel 提供了几种改变列宽和行高的方法.1 .改变列宽 列宽是根据在单元格中填充的"固定间距字体" 字符的数量来测量的.默认状态下,列宽为8 .43 个单位,相当于64 像素. 提示:如果一个含有数值的单元格中全是井号(刑, 这就表示列宽不足以容纳单元格中的信息. 加大列宽可以解决这个问题. 在改

wpf-Wpf 中在listview的header部位双击 怎么禁止改变列宽

问题描述 Wpf 中在listview的header部位双击 怎么禁止改变列宽 列与列之间的分隔部分双击 会自动调整宽度 这个功能怎么禁止

拖拉表格改变列宽时,setCapture();releaseCapture();

问题描述 <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><HTML><HEAD><TITLE>NewDocument</TITLE><METANAME="Generator"CONTENT="EditPlus"><METANAME="Author"CONTENT=""

可通过拖动改变列宽的表格

 title1中国  title2  title3  title4  content11  content12  content13  content14  content21  content22  content23  content24  content31  content32  content33  content34

JGrid中拖动改变列宽的脚本 原型_javascript技巧

拖动我1 拖动我2 拖动我3 拖动我4 拖动我5                                                  

jQuery表格列宽可拖拽改变且兼容firfox_jquery

本demo使用jQuery包,实现表格列宽可拖拽功能,并实现页面reset时的重新布局.使用jQuery,方便函数的调用,给要处理的表格添加id 后,直接调用$("#id").movedTh()即可方便实现,修改了firfox的兼容性. 代码如下: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312">

JQuery拖动表头边框线调整表格列宽效果代码_jquery

类似于桌面程序中的表格拖动表头的效果,当鼠标停留在表头边框线上时,鼠标会变成表示左右拖动的形状,接着拖动鼠标,会在表格中出现一条随鼠标移动的竖线,最后放开鼠标,表格列宽会被调整.最近比较空闲,便自己动手尝试实现,在此分享下小小的成果. 首先需要如图所示的鼠标图标文件,在自己的硬盘中搜索*.cur,肯定能找到. 为了能在所有需要该效果的页面使用,并且不需要更改页面任何HTML,我把所有的代码整合在 $(document).ready(function() {}); 中,并写入一个独立的JS文件.