JS表格列可拖動特效:
<!DOCTYPE html><html> <head><style type="text/css"> table{ border-top:solid 1px black; border-left:solid 1px black; font-size:12px; width: 100%; } th{ white-space: nowrap; } th,td{ border-right-style: solid; border-right-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; height:30px; } .dragable{ width: 3px; height:100%; background-color: white; float: right; /*這個樣式與效果有一定關係,其他無所謂*/ cursor: col-resize; } </style> <script type="text/javascript"> var draging = false;//是否拖拽中 var dragElement = null;//當前拖拽的th var offsetLeft = 0;//當前拖拽的th與絕對左座標 var offsetWidth = 0;//當前拖拽的th的絕對寬度 function mousedown(){ if(draging) return; draging = true; dragElement = window.event.srcElement.parentNode; offsetLeft = dragElement.offsetLeft; document.body.style.cursor = "col-resize"; document.body.onselectstart = function(){return false;};//拖拽的時候,滑鼠滑過字的時候,不讓選中(預設滑鼠選中字的效果,大家都知道) } function mouseup(){ draging = false; dragElement = null; document.body.style.cursor = "auto"; document.body.onselectstart = function(){return true}; } function mousemove(){ if(draging && dragElement){ var width = event.clientX-offsetLeft; if(width>0){ dragElement.style.width = width; offsetWidth = dragElement.offsetWidth; }else{ dragElement.style.width = offsetWidth; } } } </script> </head> <body onmousemove="mousemove();" onmouseup="mouseup();"> <table cellpadding="0" cellspacing="0"> <thead> <tr> <th style="width: 120px;">編號<span class="dragable" onmousedown="mousedown();"> </span></th> <th style="width: 120px;">姓名<span class="dragable" onmousedown="mousedown();"> </span></th> <th style="width: 120px;">年齡<span class="dragable" onmousedown="mousedown();"> </span></th> <th>備忘</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>Siuon</td> <td>100</td> <td>JavaEE工程師...</td> </tr> </tbody> </table> </body></html>
動態產生<span class="dragable" onmousedown="mousedown();"> </span>
<!DOCTYPE html><html> <head><style type="text/css"> table{ border-top:solid 1px black; border-left:solid 1px black; font-size:12px; width: 100%; } th{ white-space: nowrap; } th,td{ border-right-style: solid; border-right-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; height:30px; } .dragable{ width: 3px; height:100%; background-color: white; float: right; /*這個樣式與效果有一定關係,其他無所謂*/ cursor: col-resize; } </style> <script type="text/javascript"> var draging = false;//是否拖拽中 var dragElement = null;//當前拖拽的th var offsetLeft = 0;//當前拖拽的th與絕對左座標 var offsetWidth = 0;//當前拖拽的th的絕對寬度 function mousedown(){ if(draging) return; draging = true; dragElement = window.event.srcElement.parentNode; offsetLeft = dragElement.offsetLeft; document.body.style.cursor = "col-resize"; document.body.onselectstart = function(){return false;};//拖拽的時候,滑鼠滑過字的時候,不讓選中(預設滑鼠選中字的效果,大家都知道) } function mouseup(){ draging = false; dragElement = null; document.body.style.cursor = "auto"; document.body.onselectstart = function(){return true}; } function mousemove(){ if(draging && dragElement){ var width = event.clientX-offsetLeft; if(width>0){ dragElement.style.width = width; offsetWidth = dragElement.offsetWidth; }else{ dragElement.style.width = offsetWidth; } } } //建立<span class="dragable" onmousedown="mousedown();"> </span> function createSpan(){ var span = document.createElement("span"); span.className = "dragable"; span.attachEvent("onmousedown",mousedown); span.innerHTML = " "; return span; } function init(){ //在th添加span var ths = document.getElementsByTagName("th"); for(var i=0;i<ths.length;i++){ ths[i].appendChild(createSpan()); } } </script> </head> <body onload="init()" onmousemove="mousemove();" onmouseup="mouseup();"> <table id="mytable" cellpadding="0" cellspacing="0"> <thead> <tr> <th style="width: 120px;">編號</th> <th style="width: 120px;">姓名</th> <th style="width: 120px;">年齡</th> <th>備忘</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>Siuon</td> <td>100</td> <td>JavaEE工程師...</td> </tr> </tbody> </table> </body></html>