表格列宽鼠标拖动

/******************************************

* 没有版权 任意修改 改好了请发给我一份 O(∩_∩)O

* Email:

* QQ:52524611

*******************************************/

功能:1)鼠标拖动列宽。2)双击恢复列宽

<HTML>
<HEAD>
<TITLE>表格列宽鼠标拖动</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
</HEAD>
<mce:style><!--
.line{
position:absolute;
width:1px;
height:100px;
background-color:#000000;
}
table {
border-collapse: collapse;
border: 1 solid;
padding-left: 100px;
}
thead td {
background: #c0c0c0;
cursor: col-resize;
height: 16px;
text-align: center;
}
td div {
cursor: default;
}
td {
font:menu;
padding: 5px;
border: 1px solid;
text-align: center;
}
--></mce:style><style mce_bogus="1"> .line{
position:absolute;
width:1px;
height:100px;
background-color:#000000;
}
table {
border-collapse: collapse;
border: 1 solid;
padding-left: 100px;
}
thead td {
background: #c0c0c0;
cursor: col-resize;
height: 16px;
text-align: center;
}
td div {
cursor: default;
}
td {
font:menu;
padding: 5px;
border: 1px solid;
text-align: center;
}</style>
<mce:script language="javascript"><!--
/******************************************
* 没有版权 任意修改 改好了请发给我一份 O(∩_∩)O
* Email:jianan.ma@gmail.com
* QQ:52524611
*******************************************/
//global variable
var MouseDown=false;
var currentTd = null;
var currentTable = null;
var NewLine=null; //鼠标点击、拖动时产生的线
/******************************************
* Funciont Name: ResizeTd
* Description:
* @Param:
* @Return:
*******************************************/
function ResizeTd(){
if(event.srcElement.name!="headTd") return;
//获取当前操作的TD对象
setCurrentTd();
MouseDown=true;
NewLine = document.createElement("div");
NewLine.className = 'line';
document.body.appendChild(NewLine);
NewLine.style.height= currentTable.offsetHeight;
NewLine.style.left = document.body.scrollLeft+event.x;
NewLine.style.top = currentTable.offsetTop;
}
/******************************************
* Funciont Name: setCurrentTd
* Description:
* @Param:
* @Return:
*******************************************/
function setCurrentTd(){
var td = event.srcElement;
currentTable = td.parentElement.parentElement.parentElement;
var tdLeft = td.offsetLeft + currentTable.offsetLeft;
var thead = currentTable.rows[0].cells;
if(event.x-tdLeft<5){//鼠标位置在下一个td的左侧
if(thead[0]==td){//拖动table左侧边线是无效操作
currentTd = null;
return;
}
for(var i=1;i<thead.length;i++){
if(thead[i]==td)
currentTd=thead[i-1];
}
}else{
currentTd=td;
}
}
/******************************************
* Funciont Name: restoreTD
* Description:
* @Param:
* @Return:
*******************************************/
function restoreTD(){
if(event.srcElement.name!="headTd") return;
setCurrentTd();
if(currentTd==null) return;
currentTd.style.width='0px'
}
document.onmouseup = function(){
if(MouseDown){
MouseDown=false;
var tdWidth = parseInt(currentTd.clientWidth);
width=event.x-parseInt(currentTd.offsetLeft)-parseInt
(currentTable.offsetLeft)-tdWidth;
if(Math.abs(width)>2&&(width+tdWidth)>0){
currentTd.style.width=tdWidth+width-currentTable.offsetLeft;
}
document.body.removeChild(NewLine);
}
}
document.onmousemove = function(){
if(MouseDown){
NewLine.style.left=document.body.scrollLeft+event.x;
}
}
// --></mce:script>
<BODY>
<table id="resizeTable" onselectstart="return
false;" >
<thead>
<tr>
<td name="headTd" data="姓名"
ondblclick="restoreTD()" onmousedown="ResizeTd(this)
"><div>姓名</div></td>
<td name="headTd" data="性别"
ondblclick="restoreTD()" onmousedown="ResizeTd(this)
"><div>性别</div></td>
<td name="headTd" data="电话"
ondblclick="restoreTD()" onmousedown="ResizeTd(this)
"><div>电话</div></td>
<td name="headTd" data="住址"
ondblclick="restoreTD()" onmousedown="ResizeTd(this)
"><div>住址</div></td>
<td name="headTd" data="面貌"
ondblclick="restoreTD()" onmousedown="ResizeTd(this)
"><div>政治面貌</div></td>
<td name="headTd" data="学历"
ondblclick="restoreTD()" onmousedown="ResizeTd(this)
"><div>学历</div></td>
<td name="headTd" data="备注"
ondblclick="restoreTD()" onmousedown="ResizeTd(this)
"><div>备注</div></td>
</tr>
</thead>
<tbody>
<mce:script language="javascript"><!--
for(i=0;i<10;i++){
var html='<tr>';
html+='<td>人员'+(i+1)+'</td>';
html+='<td>男</td>';
html+='<td>12345</td>';
html+='<td>中国 江苏 南京</td>';
html+='<td>党员</td>';
html+='<td>本科</td>';
html+='<td>测试表格列宽鼠标拖动</td>';
html+='</tr> ';
document.write(html);
}
// --></mce:script>
</tbody>
</table>
</BODY>
</HTML>

   [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

时间: 2024-10-08 22:18:01

表格列宽鼠标拖动的相关文章

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

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

调整Word文档中表格列宽的方法

调整Word文档中表格列宽的方法          1.选择需要调整的列,在"表格工具-布局"选项卡下"单元格大小"组的"表格列宽"微调框中输入数字,按"Enter"键确认输入后,该列单元格的宽度即会调整为输入值,如图1所示. 图1 调整整列单元格的列宽 2.将鼠标指针放置到需要单独调整列宽的单元格左边框上,当鼠标指针变为 形状时单击.然后将鼠标指针移动到该单元格右边框上,当指针变为 形状时拖动边框,即可只调整该单元格的宽度,

高手进-列宽可拖动问题。求高手。

问题描述 列宽可拖动问题.求高手. 我直接用的jquery的插件实现的列宽拖动,但是碰到有行合并的时候,表格中有列合并的列宽拖动就不好使了,其他的列拖动正常,求高手. <!DOCTYPE html> <br> .a{text-indent:0.3em; }<br> <br> $(function(){<br><br> $("#sample2").colResizable({<br> liveDrag:t

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

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

word表格列宽和行高设置指南

  在Word中制作表格的时候,表格都不可能达到我们满意的效果,因为Word表格的列宽一般是采用默认值,本教程就为大家介绍一下如何设置表格的行宽和列高.表格调整是一项比较复杂的工程,我们应该怎样快速的调整表格来达到我们想要的效果呢?下面就让我们一起来看看下面的GIF动画演示,相信你很快就明了了! 方法一.拖动分隔线来调整表格. 方法二.使用左键拖动水平标尺.把插入点置于表格内部,此时,鼠标马上会变成左右双箭头,拖动即可调整表格的列的列宽.(按住Alt键可以进行微调) 方法三.表格-->自动调整-

技术总结:自动扩张WPF树型表格列宽

问题描述     今天测试人员提了一个易用性的BUG,主要是说系统目前使用的树型控件不支持自动扩张列的宽度.其实客户那边已经对这个问题提了多次,不过由于对WPF只是入门级,所以一直都没改.这两天项目比较闲,就花了些时间把这个问题改了.原问题如下:   图1 问题描述   背景     树型控件在GIX4系统中已经被大量使用.这个控件是一年前其它同事在网上搜索到,再引入的.     一开始的时候,要解决这个问题,想到的最直接的方案是这样的:找到第一列中的Expander控件(加号:),然后监听它的

JQuery表格拖动调整列宽效果(自己动手写的)_jquery

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

gridview列宽怎么可以拖动啊

问题描述 gridview列宽怎么可以拖动让它变宽啊? 解决方案 解决方案二:楼主直接设置宽度就可以了,拖动也是可以的.如果怎么拖,那看你的鼠标了解决方案三:直接设置宽度的话那固定了,就象Winform里面的GridView一样,列宽可以拖动啊!解决方案四:到web版javascript版块搜索解决方案五:地址是多少啊?解决方案六:你上孟子E章的空间.它里面有完整的东西.datagrid列和行都可以拖动的..

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

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