表格拖动问题 急!!谢谢 拖懂列是怎么回事?你是想通过列拖懂table吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是改变每个列的大小,表格并不动,就是每个输出的列值都有长短,要一行的字段多的话,表格又不想超出页面大小,有些值就看不完全了,这时我可以拖动列线,使别的列短点,要看的列长点,就和Excel里表格一样,我已经实现了,就是不太灵活,而且易出错,请高手指点一个好的方法,最好有源代码,请给出三行三列以上就行。(有很多两列可以实现,多列就不行了)谢谢。 <html><head><title>Untitled Document</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><SCRIPT LANGUAGE="JavaScript"><!-- function topBar(){ this.colcount=document.all.table1.children[0].children[0].children.length; this.html=''; this.items=new Array; this.create=create; this.getObj=getObj; this.refresh=refresh; }function create(){ for(i=0;i<this.colcount;i++){ var obj=document.all.table1.children[0].children[0].children[i]; this.items[i]=new Array(); this.items[i].w=obj.clientWidth; this.items[i].x=i==0?2:(this.items[i-1].x+this.items[i-1].w+2); this.html+='\n<div id="item_'+i+'" style="position:absolute;left:'+this.items[i].x+'px;top:2px;width:'+this.items[i].w+'px;height:20px;background-color:#e7e7e7;"></div>'; if(i<(this.colcount-1))this.html+='\n<div id="resizer_'+i+'" style="position:absolute;left:'+(this.items[i].w+this.items[i].x)+'px;top:2px;width:2px;height:20px;background-color:black;cursor :e-resize" ></div>'; }}function getObj(){ for(i=0;i<this.colcount;i++){ this.items[i].item=new makeLayer('item_'+i); if(i<(this.colcount-1))this.items[i].resizer=new makeLayer('resizer_'+i); }}function refresh(){ for(i=0;i<this.colcount;i++){ var obj=document.all.table1.children[0].children[0].children[i]; this.items[i].w=obj.clientWidth; this.items[i].x=i==0?2:(this.items[i-1].x+this.items[i-1].w+2); this.items[i].item.css.width=this.items[i].w; this.items[i].item.css.left=this.items[i].x; if(i<(this.colcount-1))this.items[i].resizer.css.left=this.items[i].x+this.items[i].w; }}//-------- drag -------var dragObj=null;var dragID=null;function mDown(id){ if(window.event.srcElement.id.indexOf('resizer_')!=-1)dragObj=window.event.srcElement; else return false; dragID=dragObj.id.replace(/\w+\_(\d*)/,'$1');}function mMove(){ if(!dragObj||!dragID) return false; try{ var objl=document.all.table1.children[0].children[0].children[dragID]; var objr=document.all.table1.children[0].children[0].children[dragID+1]; var dw=window.event.x-window.event.offsetX-dragObj.parentElement.offsetLeft-objl.clientWidth; objl.style.width=objl.clientWidth+dw; objr.style.width=objr.clientWidth-dw; // obj.style.width=window.event.x-window.event.offsetX-dragObj.parentElement.offsetLeft; topbar.refresh() } catch(x){}}function mUp(){ dragObj=null; dragID=null; return false;}function makeLayer(idStr) { this.obj=document.all[idStr]; this.css=this.obj.style; this.x =document.all[idStr].offsetLeft this.y =document.all[idStr].offsetTop; return (this);}function go(){ topbar=new topBar(); topbar.create(); document.all.bar.innerHTML=topbar.html document.all.bar.style.width=document.all.table1.width; document.all.bar.style.left=document.all.table1.style.left; document.all.bar.style.top=document.all.table1.offsetTop-22; //alert(1); topbar.getObj();} document.onmousedown = mDown document.onmousemove = mMove document.onmouseup = mUp;//--></SCRIPT></head><body bgcolor="#FFFFFF" text="#000000"><div id=bar style="position:absolute;height:22px;width:500px;background-color:black;top:2px;left:2px;over-flow:hidden;"></div><BR><BR><BR><BR><table id=table1 width="500" border="1" cellspacing="0" cellpadding="0" bordercolor="#000000"> <tr> <td > </td> <td > </td> <td > </td> <td > </td> </tr> <tr> <td > </td> <td > </td> <td> </td> <td > </td> </tr></table><SCRIPT LANGUAGE="JavaScript"><!--go()//--></SCRIPT></body></html> <style>.tabletitle { background: buttonface; font: icon; color: buttontext; table-layout: fixed; background: threedhighlight; border-top:1px solid threedshadow; border-right: 1px solid threedshadow;}.tabletitleTD { background: buttonface; overflow:hidden; height:15; border-left:1px solid buttonhighlight; border-right:1px solid buttonshadow; border-top:1px solid buttonhighlight; border-bottom:1px solid buttonshadow;}.tableAct { background: buttonface; font: icon; color: buttontext; table-layout: fixed; border-right: 1px solid threedshadow;}.tableAct TD{ border-left: 1px solid buttonshadow;}.tdwbar{ cursor:w-resize; background:buttonface; behavior:url(dragline.htc);}</style><TABLE class="tabletitle" cellSpacing="0" cellPadding="0" border="0" ><TR> <TD width="100" class="tabletitleTD" id="d1">标题1</TD> <TD width="1" class="tdwbar" onDragend="t1.width=d1.width;t2.width=d2.width"></TD> <TD width="100" class="tabletitleTD" id="d2">标题2</TD> <TD width="1" class="tdwbar" onDragend="t2.width=d2.width;t3.width=d3.width"></TD> <TD width="100" class="tabletitleTD" id="d3">标题3</TD> <TD width="1" class="tdwbar" onDragend="t3.width=d3.width;t4.width=d4.width"></TD> <TD width="100" class="tabletitleTD" id="d4">标题4</TD> <TD width="1" class="tdwbar" onDragend="t4.width=d4.width"></TD> <TD width="5" class="tabletitleTD"> </TD></TR></TABLE><TABLE class="tableAct" cellSpacing="0" cellPadding="0" border="1" ><TBODY> <TR> <TD width="100" id="t1">ballack</TD> <TD width="100" id="t2">ballack</TD> <TD width="100" id="t3">ballack</TD> <TD width="100" id="t4">ballack</TD> <TD width="8"> </TD> </TR> <TR> <TD width="100">kahn</TD> <TD width="100">kahn</TD> <TD width="100">kahn</TD> <TD width="100">kahn</TD> <TD width="8"> </TD> </TR> <TR> <TD width="100">ziege</TD> <TD width="100">ziege</TD> <TD width="100">ziege</TD> <TD width="100">ziege</TD> <TD width="8"> </TD> </TR> <TR> <TD width="100">klose</TD> <TD width="100">klose</TD> <TD width="100">klose</TD> <TD width="100">klose</TD> <TD width="8"> </TD> </TR></TBODY></TABLE> <style>.tabletitle { background: buttonface; font: icon; color: buttontext; table-layout: fixed; background: threedhighlight; border-top:1px solid threedshadow; border-right: 1px solid threedshadow;}.tabletitleTD { background: buttonface; overflow:hidden; height:15; border-left:1px solid buttonhighlight; border-right:1px solid buttonshadow; border-top:1px solid buttonhighlight; border-bottom:1px solid buttonshadow;}.tableAct { background: buttonface; font: icon; color: buttontext; table-layout: fixed; border-right: 1px solid threedshadow;}.tableAct TD{ border-left: 1px solid buttonshadow;}.tdwbar{ cursor:w-resize; background:buttonface; behavior:url(dragline.htc);}</style><TABLE class="tabletitle" cellSpacing="0" cellPadding="0" border="0" ><TR> <TD width="100" class="tabletitleTD" id="d1">标题1</TD> <TD width="1" class="tdwbar" onDragend="t1.width=d1.width;t2.width=d2.width"></TD> <TD width="100" class="tabletitleTD" id="d2">标题2</TD> <TD width="1" class="tdwbar" onDragend="t2.width=d2.width;t3.width=d3.width"></TD> <TD width="100" class="tabletitleTD" id="d3">标题3</TD> <TD width="1" class="tdwbar" onDragend="t3.width=d3.width;t4.width=d4.width"></TD> <TD width="100" class="tabletitleTD" id="d4">标题4</TD> <TD width="1" class="tdwbar" onDragend="t4.width=d4.width"></TD> <TD width="5" class="tabletitleTD"> </TD></TR></TABLE><TABLE class="tableAct" cellSpacing="0" cellPadding="0" border="1" ><TBODY> <TR> <TD width="100" id="t1">ballack</TD> <TD width="100" id="t2">ballack</TD> <TD width="100" id="t3">ballack</TD> <TD width="100" id="t4">ballack</TD> <TD width="8"> </TD> </TR> <TR> <TD width="100">kahn</TD> <TD width="100">kahn</TD> <TD width="100">kahn</TD> <TD width="100">kahn</TD> <TD width="8"> </TD> </TR> <TR> <TD width="100">ziege</TD> <TD width="100">ziege</TD> <TD width="100">ziege</TD> <TD width="100">ziege</TD> <TD width="8"> </TD> </TR> <TR> <TD width="100">klose</TD> <TD width="100">klose</TD> <TD width="100">klose</TD> <TD width="100">klose</TD> <TD width="8"> </TD> </TR></TBODY></TABLE> seabell(百合心)的好漂亮!!!先说声对不起,让你久等了,昨晚和哥们喝酒去了,今天一上班就在写,你看看,很不理想,主要是table的width&height太难控制,总是不听话,每个td之间的关系无法独立控制,很麻烦,主要是对table不熟悉,我马上就改正一些严重的问题,我很希望全部使用div,其实也可以达到table的效果,而且更以控制,你也看看,我先改, seabell(百合心)的好漂亮!!!先说声对不起,让你久等了,昨晚和哥们喝酒去了,今天一上班就在写,你看看,很不理想,主要是table的width&height太难控制,总是不听话,每个td之间的关系无法独立控制,很麻烦,主要是对table不熟悉,我马上就改正一些严重的问题,我很希望全部使用div,其实也可以达到table的效果,而且更以控制,你也看看,我先改, 谢谢。可是最后一列,为什么拖动的时候下表格会减少?能不能不让它最后一列就是TABLE的right线成固定值,不让它随表格变动,谢谢,解决后立给分。 如何提高js滚动速度 求大侠 用jquery删除节点 初学ext3 无法从后台获取数据 用左右上下键移动焦点,请帮忙看一下为什么移动左右键时文本框中的内容不能select() jquery grid plugin 的问题 对象创建问题!请教高手 怎样实现隔2秒钟滚动显示两条新闻,直到显示完后再循环? 奇怪的Cookie问题 我知道字符串里引号里的引号要写成单引号,但引号里面的引号里面的引号那应该是什么呢? jquery插件,第一次能运行第二次运行不了 谈谈 Mozilla 的 XUL , 谁有兴趣? 关于submit()
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"><SCRIPT LANGUAGE="JavaScript">
<!--
function topBar(){
this.colcount=document.all.table1.children[0].children[0].children.length;
this.html='';
this.items=new Array;
this.create=create;
this.getObj=getObj;
this.refresh=refresh;
}
function create(){
for(i=0;i<this.colcount;i++){
var obj=document.all.table1.children[0].children[0].children[i];
this.items[i]=new Array();
this.items[i].w=obj.clientWidth;
this.items[i].x=i==0?2:(this.items[i-1].x+this.items[i-1].w+2);
this.html+='\n<div id="item_'+i+'" style="position:absolute;left:'+this.items[i].x+'px;top:2px;width:'+this.items[i].w+'px;height:20px;background-color:#e7e7e7;"></div>';
if(i<(this.colcount-1))this.html+='\n<div id="resizer_'+i+'" style="position:absolute;left:'+(this.items[i].w+this.items[i].x)+'px;top:2px;width:2px;height:20px;background-color:black;cursor :e-resize" ></div>';
}
}
function getObj(){
for(i=0;i<this.colcount;i++){
this.items[i].item=new makeLayer('item_'+i);
if(i<(this.colcount-1))this.items[i].resizer=new makeLayer('resizer_'+i);
}
}
function refresh(){
for(i=0;i<this.colcount;i++){
var obj=document.all.table1.children[0].children[0].children[i];
this.items[i].w=obj.clientWidth;
this.items[i].x=i==0?2:(this.items[i-1].x+this.items[i-1].w+2);
this.items[i].item.css.width=this.items[i].w;
this.items[i].item.css.left=this.items[i].x;
if(i<(this.colcount-1))this.items[i].resizer.css.left=this.items[i].x+this.items[i].w;
}
}
//-------- drag -------
var dragObj=null;
var dragID=null;
function mDown(id){
if(window.event.srcElement.id.indexOf('resizer_')!=-1)dragObj=window.event.srcElement;
else return false;
dragID=dragObj.id.replace(/\w+\_(\d*)/,'$1');
}
function mMove(){
if(!dragObj||!dragID) return false;
try{
var objl=document.all.table1.children[0].children[0].children[dragID];
var objr=document.all.table1.children[0].children[0].children[dragID+1];
var dw=window.event.x-window.event.offsetX-dragObj.parentElement.offsetLeft-objl.clientWidth;
objl.style.width=objl.clientWidth+dw;
objr.style.width=objr.clientWidth-dw;
// obj.style.width=window.event.x-window.event.offsetX-dragObj.parentElement.offsetLeft;
topbar.refresh()
}
catch(x){}
}
function mUp(){
dragObj=null;
dragID=null;
return false;}
function makeLayer(idStr) {
this.obj=document.all[idStr];
this.css=this.obj.style;
this.x =document.all[idStr].offsetLeft
this.y =document.all[idStr].offsetTop;
return (this);
}
function go(){
topbar=new topBar();
topbar.create();
document.all.bar.innerHTML=topbar.html
document.all.bar.style.width=document.all.table1.width;
document.all.bar.style.left=document.all.table1.style.left;
document.all.bar.style.top=document.all.table1.offsetTop-22;
//alert(1);
topbar.getObj();
}
document.onmousedown = mDown
document.onmousemove = mMove
document.onmouseup = mUp;
//-->
</SCRIPT>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div id=bar style="position:absolute;height:22px;width:500px;background-color:black;top:2px;left:2px;over-flow:hidden;"></div>
<BR><BR><BR><BR>
<table id=table1 width="500" border="1" cellspacing="0" cellpadding="0" bordercolor="#000000">
<tr>
<td > </td>
<td > </td>
<td > </td>
<td > </td>
</tr>
<tr>
<td > </td>
<td > </td>
<td> </td>
<td > </td>
</tr>
</table>
<SCRIPT LANGUAGE="JavaScript">
<!--
go()
//-->
</SCRIPT>
</body>
</html>
.tabletitle {
background: buttonface;
font: icon;
color: buttontext;
table-layout: fixed;
background: threedhighlight;
border-top:1px solid threedshadow;
border-right: 1px solid threedshadow;
}.tabletitleTD {
background: buttonface;
overflow:hidden;
height:15;
border-left:1px solid buttonhighlight;
border-right:1px solid buttonshadow;
border-top:1px solid buttonhighlight;
border-bottom:1px solid buttonshadow;
}
.tableAct {
background: buttonface;
font: icon;
color: buttontext;
table-layout: fixed;
border-right: 1px solid threedshadow;
}
.tableAct TD{
border-left: 1px solid buttonshadow;
}
.tdwbar{
cursor:w-resize;
background:buttonface;
behavior:url(dragline.htc);
}
</style>
<TABLE class="tabletitle" cellSpacing="0" cellPadding="0" border="0" >
<TR>
<TD width="100" class="tabletitleTD" id="d1">标题1</TD>
<TD width="1" class="tdwbar" onDragend="t1.width=d1.width;t2.width=d2.width"></TD>
<TD width="100" class="tabletitleTD" id="d2">标题2</TD>
<TD width="1" class="tdwbar" onDragend="t2.width=d2.width;t3.width=d3.width"></TD>
<TD width="100" class="tabletitleTD" id="d3">标题3</TD>
<TD width="1" class="tdwbar" onDragend="t3.width=d3.width;t4.width=d4.width"></TD>
<TD width="100" class="tabletitleTD" id="d4">标题4</TD>
<TD width="1" class="tdwbar" onDragend="t4.width=d4.width"></TD>
<TD width="5" class="tabletitleTD"> </TD>
</TR>
</TABLE>
<TABLE class="tableAct" cellSpacing="0" cellPadding="0" border="1" >
<TBODY>
<TR>
<TD width="100" id="t1">ballack</TD>
<TD width="100" id="t2">ballack</TD>
<TD width="100" id="t3">ballack</TD>
<TD width="100" id="t4">ballack</TD>
<TD width="8"> </TD>
</TR>
<TR>
<TD width="100">kahn</TD>
<TD width="100">kahn</TD>
<TD width="100">kahn</TD>
<TD width="100">kahn</TD>
<TD width="8"> </TD>
</TR>
<TR>
<TD width="100">ziege</TD>
<TD width="100">ziege</TD>
<TD width="100">ziege</TD>
<TD width="100">ziege</TD>
<TD width="8"> </TD>
</TR>
<TR>
<TD width="100">klose</TD>
<TD width="100">klose</TD>
<TD width="100">klose</TD>
<TD width="100">klose</TD>
<TD width="8"> </TD>
</TR>
</TBODY>
</TABLE>
.tabletitle {
background: buttonface;
font: icon;
color: buttontext;
table-layout: fixed;
background: threedhighlight;
border-top:1px solid threedshadow;
border-right: 1px solid threedshadow;
}.tabletitleTD {
background: buttonface;
overflow:hidden;
height:15;
border-left:1px solid buttonhighlight;
border-right:1px solid buttonshadow;
border-top:1px solid buttonhighlight;
border-bottom:1px solid buttonshadow;
}
.tableAct {
background: buttonface;
font: icon;
color: buttontext;
table-layout: fixed;
border-right: 1px solid threedshadow;
}
.tableAct TD{
border-left: 1px solid buttonshadow;
}
.tdwbar{
cursor:w-resize;
background:buttonface;
behavior:url(dragline.htc);
}
</style>
<TABLE class="tabletitle" cellSpacing="0" cellPadding="0" border="0" >
<TR>
<TD width="100" class="tabletitleTD" id="d1">标题1</TD>
<TD width="1" class="tdwbar" onDragend="t1.width=d1.width;t2.width=d2.width"></TD>
<TD width="100" class="tabletitleTD" id="d2">标题2</TD>
<TD width="1" class="tdwbar" onDragend="t2.width=d2.width;t3.width=d3.width"></TD>
<TD width="100" class="tabletitleTD" id="d3">标题3</TD>
<TD width="1" class="tdwbar" onDragend="t3.width=d3.width;t4.width=d4.width"></TD>
<TD width="100" class="tabletitleTD" id="d4">标题4</TD>
<TD width="1" class="tdwbar" onDragend="t4.width=d4.width"></TD>
<TD width="5" class="tabletitleTD"> </TD>
</TR>
</TABLE>
<TABLE class="tableAct" cellSpacing="0" cellPadding="0" border="1" >
<TBODY>
<TR>
<TD width="100" id="t1">ballack</TD>
<TD width="100" id="t2">ballack</TD>
<TD width="100" id="t3">ballack</TD>
<TD width="100" id="t4">ballack</TD>
<TD width="8"> </TD>
</TR>
<TR>
<TD width="100">kahn</TD>
<TD width="100">kahn</TD>
<TD width="100">kahn</TD>
<TD width="100">kahn</TD>
<TD width="8"> </TD>
</TR>
<TR>
<TD width="100">ziege</TD>
<TD width="100">ziege</TD>
<TD width="100">ziege</TD>
<TD width="100">ziege</TD>
<TD width="8"> </TD>
</TR>
<TR>
<TD width="100">klose</TD>
<TD width="100">klose</TD>
<TD width="100">klose</TD>
<TD width="100">klose</TD>
<TD width="8"> </TD>
</TR>
</TBODY>
</TABLE>
先说声对不起,让你久等了,昨晚和哥们喝酒去了,今天一上班就在写,你看看,很不理想,主要是table的width&height太难控制,总是不听话,每个td之间的关系无法独立控制,很麻烦,主要是对table不熟悉,我马上就改正一些严重的问题,我很希望全部使用div,其实也可以达到table的效果,而且更以控制,你也看看,我先改,
先说声对不起,让你久等了,昨晚和哥们喝酒去了,今天一上班就在写,你看看,很不理想,主要是table的width&height太难控制,总是不听话,每个td之间的关系无法独立控制,很麻烦,主要是对table不熟悉,我马上就改正一些严重的问题,我很希望全部使用div,其实也可以达到table的效果,而且更以控制,你也看看,我先改,