當(dāng)前位置:軟件學(xué)堂 > 資訊首頁 > 網(wǎng)絡(luò)編程 > 編程其他 > JS代碼實(shí)現(xiàn)動(dòng)態(tài)拖放表格的寬度

JS代碼實(shí)現(xiàn)動(dòng)態(tài)拖放表格的寬度

2012/10/31 16:13:17作者:佚名來源:網(wǎng)絡(luò)

移動(dòng)端

【實(shí)例名稱】

JS代碼實(shí)現(xiàn)動(dòng)態(tài)拖放表格的寬度

【實(shí)例描述】

表格的寬度一般在頁面設(shè)計(jì)時(shí)被靜態(tài)指定:本例學(xué)習(xí)如何在頁面運(yùn)行時(shí),動(dòng)態(tài)改變表格的寬度。

【實(shí)例代碼】

<html> <head> <title>Untitled Document-學(xué)無憂(wangbatian.cn)</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <script language="javascript"> var dragenable=false; var x; var y; var w; var h; var obj; function init() {     x=event.clientX+document.body.scrollLeft;  //獲取x坐標(biāo)     obj=event.srcElement;                      //獲取鼠標(biāo)觸發(fā)的元素     w=event.srcElement.offsetWidth;            //對(duì)象的寬度     obj.setCapture();                          //接受鼠標(biāo)消息     if(x>event.srcElement.offsetLeft+w-5 && x<event.srcElement.offsetLeft+w) { //鼠標(biāo)移動(dòng)到對(duì)象邊界時(shí)     dragenable=true;obj.style.cursor='e-resize';} //改變鼠標(biāo)的樣式-左右拖動(dòng)型 } function drag() {  if(event.clientX+document.body.scrollLeft>event. srcElement.offsetLeft+event.srcElement.offsetWidth-5 && event.clientX+document.body.scrollLeft<event. srcElement.offsetLeft+event.srcElement.offsetWidth)   {event.srcElement.style.cursor='e-resize';} //改變鼠標(biāo)的樣式-左右拖動(dòng)型  else    event.srcElement.style.cursor='default'; //改變鼠標(biāo)的樣式-默認(rèn)型     if(dragenable==true) {  if(event.clientX+document.body.scrollLeft-x+w>0) {  var i=obj.cellIndex;  var j;  for(j=0;j<obj.parentNode.parentNode.rows.length;j++) {  //更改表格的寬度   obj.parentNode.parentNode.rows[j].cells[i].width= event.clientX+document.body.scrollLeft-x+w;   }  }  else {   var i=obj.cellIndex;   var j;   for(j=0;j<obj.parentNode.parentNode.rows.length;j++) {    obj.parentNode.parentNode.rows[j].cells[i].width=1; //最小也要保持寬度為1    }   }  } } function end()                           //結(jié)束更改 {     dragenable=false;     obj.releaseCapture();                //釋放鼠標(biāo)的捕獲     obj.style.cursor='default';          //更改鼠標(biāo)的樣式為默認(rèn) } </script> </head> <body bgcolor="#FFFFFF" text="#000000" leftmargin=0 topmargin=0> 表格寬度設(shè)置為百分比顯示 <br> <table width="60%" border="1" cellpadding="0" cellspacing="2" onmousedown=init() onmouseup=end() onmousemove=drag() id=table1 style="table-layout:fixed">   <tr>     <td height="18" align="top">&nbsp;</td>     <td align="top">&nbsp;</td>     <td align="top">&nbsp;</td>     <td align="top">&nbsp;</td>   </tr>   <tr>     <td height="18" align="top">&nbsp;</td>     <td align="top">&nbsp;</td>     <td align="top">&nbsp;</td>     <td align="top">&nbsp;</td>   </tr>   <tr>     <td height="18" align="top">&nbsp;</td>     <td align="top">&nbsp;</td>     <td align="top">&nbsp;</td>     <td align="top">&nbsp;</td>   </tr>   <tr>     <td height="18" align="top">&nbsp;</td>     <td align="top">&nbsp;</td>     <td align="top">&nbsp;</td>     <td align="top">&nbsp;</td>   </tr> </table> </body> </html>

【運(yùn)行效果】

運(yùn)行效果

【難點(diǎn)剖析】

本例的重點(diǎn)其實(shí)是鼠標(biāo)坐標(biāo)的獲取。代碼中使用_“event.srcElement”獲取鼠標(biāo)操作的對(duì)象,然后使用“offsetWidth”獲取該對(duì)象的寬度。當(dāng)鼠標(biāo)移動(dòng)到表格邊界時(shí),再動(dòng)態(tài)改變鼠標(biāo)的樣式。

【源碼下載】

如果你不愿復(fù)制代碼及提高代碼準(zhǔn)確性,你可以點(diǎn)擊:動(dòng)態(tài)拖放表格的寬度 進(jìn)行本實(shí)例源碼下載 

標(biāo)簽: JS代碼  表格