javascript中用鼠标改变列宽

<!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN">  
  <HTML>  
  <HEAD>  
  <TITLE>   New   Document   </TITLE>  
  <style>  
  .tabletitle   {  
  font:   icon;  
  color:   buttontext;  
  background:   threedhighlight;  
  border-top:1px   solid   #000000;  
  border-right:   1px   solid   #000000;  
  border-left-style:   solid;  
  border-bottom-style:   none;  
  border-left-width:   1px;  
  border-left-color:   #000000;  
  }  
  .tabletitleTD   {  
  background:   #0099FF;  
  overflow:hidden;  
  height:15;  
  border-left:1px   solid   buttonhighlight;  
  border-right:1px   solid   buttonshadow;  
  border-top:1px   solid   buttonhighlight;  
  border-bottom:1px   solid   buttonshadow;  
  color:   #FFFFFF;  
  }  
  .tableAct   {  
  background:   #FFFFFF;  
  font:   icon;  
  color:   buttontext;  
  border-right:   1px   solid   threedshadow;  
  }  
  .tableAct   TD{  
  border-left:   1px   solid   buttonshadow;  
  }  
  .tdwbar{  
  cursor:w-resize;  
  background:buttonface;  
  behavior:url(dragline.htc);  
  }  
  .tt   {  
  background-color:   #FFFFFF;  
  border-top:   1px   none   #666666;  
  border-right:   1px   none   #666666;  
  border-bottom:   1px   solid   #666666;  
  border-left:   1px   none   #666666;  
  white-space:   nowrap;  
  }  
  .myscroll{FONT-SIZE:   12px;SCROLLBAR-HIGHLIGHT-COLOR:   #FFFFFF;SCROLLBAR-SHADOW-COLOR:   #e1e1e1;SCROLLBAR-3DLIGHT-COLOR:   #e1e1e1;SCROLLBAR-TRACK-COLOR:   white;   SCROLLBAR-DARKSHADOW-COLOR:   white; scrollbar-Base-Color:   white;   scrollbar-arrow-Color:}  
  </style>  
  <SCRIPT   LANGUAGE="JavaScript">  
  <!--  
  function   TTable(name){  
          this.name=name;  
  this.cols=new   Array();  
  this.rows=new   Array();  
  this.items=new   Array();  
  this.colcount=0;//实际是列输减一  
  this.rowcount=0;  
  this.data=new   Array();  
  //style  
  this.width=100;//colum   width  
  this.bgc="#e7e7e7";  
  this.fontfamily="tahoma,arial,helvetica";  
          //method  
  this.addData=addData;  
  this.trimData=trimData;  
  this.create=create;  
  this.display=display;  
  this.refresh=refresh;  
  }  
  function   TItem(owner,name,data,rindex,cindex,width,bgc,ftc){  
          this.owner=owner;  
  this.name=name;  
  this.data=data;  
  this.rindex=rindex;  
  this.cindex=cindex;  
  this.width=width||owner.width;  
  this.bgc=bgc||owner.bgc;  
  this.htmlcode=!rindex?'/n<TD   width="100"   class="tabletitleTD"   >'+data+'</TD>/n<TD   width="2"   rowspan="'+owner.colcount+'"   class="tdwbar"   ></TD>':'/n<TD   class="tt">'+data+'</TD>';  
  }  
   
  function   addData(){  
          var   arg=addData.arguments;  
          var   len=arg.length;  
  this.colcount=Math.max(this.colcount,len);  
          var   tmpdata=new   Array();  
  for(i=0;i<this.colcount;i++){  
          tmpdata[i]=!arg[i]?'':arg[i];  
  }  
  this.data[this.data.length]=tmpdata;  
  }  
  function   trimData(){  
          for(i=0;i<this.data.length;i++){  
          for(j=0;j<this.colcount;j++){  
          this.data[i][j]=!this.data[i][j]?'&nbsp;':this.data[i][j];  
  }  
  }  
  }  
  function   create(){  
          for(i=0;i<this.data.length;i++){  
          this.items[i]=new   Array;  
  for(j=0;j<this.colcount;j++){  
          this.items[i][j]=new   TItem(this,this.data[i][j],this.data[i][j],i,j)  
  }  
          }  
  }  
  function   display(){  
          this.htmlcode='';  
  this.htmlcode+='/n<div   id="MainBG"   style="position:absolute;   left:100px;   top:180px;   z-index:1;   ;border:   1px   none   #000000;overflow:auto;"   class=myscroll>'  
                                            +'/n<div   id="TableBG"   style="position:absolute;   left:0px;   top:0px;   z-index:2;   border:   1px   none   #000000">'  
    +'/n<TABLE     border="0"   cellPadding="0"   cellSpacing="0"     class="tabletitle"   id="tb1">';  
   
  for(i=0;i<this.data.length;i++){  
          this.htmlcode+='/n<tr>';  
          for(j=0;j<this.colcount;j++){  
        this.htmlcode+=this.items[i][j].htmlcode;  
  }  
  this.htmlcode+='/n</tr>';  
          }  
  this.htmlcode+='</table></div></div>';  
  // alert(this.htmlcode)  
  document.write(this.htmlcode)  
  }  
  /*******************     drag   function     ************************/  
  function   TDrag(){  
        this.x1=null;  
        this.x2=null;  
        this.obj=null;  
        this.tableW=null;  
        this.tdW=null;  
        this.table=null;  
        this.targetTD=null;  
  }  
  function   getTdSid(sid){  
        var   targetSID=sid-1;  
        while(document.all[targetSID].tagName!='TD'){targetSID--}  
        return   targetSID  
  }  
  function   mDown(){  
          oDrag.obj=window.event.srcElement;  
          if(oDrag.obj.tagName=='TD'&&oDrag.obj.rowSpan!=1){  
            document.body.style.cursor="e-resize";  
          var   targetSID=getTdSid(event.srcElement.sourceIndex);  
                  oDrag.targetTD=document.all[targetSID];  
  oDrag.table=event.srcElement.parentElement.parentElement.parentElement;  
          oDrag.tableW=table.clientWidth;  
          oDrag.x1=event.x  
  }else{  
          oDrag.obj=null;  
          return   false  
  }  
  }  
  function   mMove(){  
        if(!oDrag.obj)return   false;  
        try{  
        if(window.event.x>=(MainBG.offsetLeft+MainBG.clientWidth))return   false;  
  oDrag.x2=event.x;  
  var   dW=oDrag.x2-oDrag.x1;  
  oDrag.targetTD.style.width=oDrag.targetTD.clientWidth+dW  
  oDrag.table.style.width=dW+oDrag.tableW;//------------>!!!  
  }  
  catch(x){}  
  }  
  function   mUp(){  
      document.body.style.cursor="default";  
      oDrag.obj=null;  
  }  
  function   refresh(){  
        table=TableBG.children[0]  
        TableBG.style.width=table.clientWidth;  
        TableBG.style.height=table.clientHeight;  
        MainBG.style.width=(TableBG.clientHright>=500)?500:TableBG.clientWidth;  
        MainBG.style.height=(TableBG.clientHright>=500)?500:TableBG.clientHeight+16;//默认,高度超过500px使用滚动  
  }  
  function   dragInit(){  
                oDrag=new   TDrag();  
        document.onmousedown   =   mDown  
        document.onmousemove   =   mMove  
        document.onmouseup   =   mUp;  
  }  
  //-->  
  </SCRIPT>  
  </HEAD>  
   
  <BODY   οnlοad="dragInit()">  
   
  <SCRIPT   LANGUAGE="JavaScript">  
  <!--  
  ot=new   TTable();  
  ot.addData('name','email','phoneCode','address','homepage','oicq')  
  ot.addData('llrock','llrock@chinaren.com','123456789','Beijing','user1.7host.com/ccrock','1234567')  
  ot.addData(1,2,3,4)  
  ot.addData(1,2,'',4,5,6)  
  ot.addData(1,2,3,4,5)  
  //ot.data=[[1,2,3,4],2,3]  
  ot.trimData()  
  ot.create()  
  ot.display()  
  ot.refresh()  
  //-->  
  </SCRIPT>  
  </BODY>  
  </HTML>   
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值