拖動table邊框,改變table形狀,純javascript代碼

 

<html>       
  
<head>   
  
<title>1111</title>   
  
<meta content="text/html; charset=gb2312" http-equiv="Content-Type">   
  
<style> {   
  box-sizing
: border-box; moz-box-sizing: border-box   
  
}
   
  #testDiv 
{ 
   background-color
: buttonface; 
   background-repeat
: repeat;     
    background-attachment
: scroll; 
    color
: #3969A5; 
    height
: 300px;     
    left
: 30px; 
    overflow
: hidden; 
    width
: 500; 
    z-index
: 2;     
    border
: 2px outset white; 
    margin
: 0px; 
    padding
: 2px;     
    background-position
: 0% 50% 
  
}
   
  body 
{   
   font-family
: Verdana; 
   font-size
: 9pt   
  
}
   
  #innerNice 
{   
   background-color
: white; 
   background-repeat
: repeat;   
   background-attachment
: scroll;   
   color
: #3969A5;   
   height
: 100%;   
   overflow
: auto;   
   width
: 100%;   
   border
: 2px inset white;   
   padding
: 8px;     
    background-position
: 0% 50%   
  
}
   
  
</style>
         
  
<SCRIPT language=javascript>     
  
var theobject = null//This gets a value as soon as a resize start   
    
  
function resizeObject() {   
   
this.el = null//pointer to the object   
   this.dir = ""//type of current resize (n, s, e, w, ne, nw, se, sw)   
   this.grabx = null//Some useful values   
   this.graby = null;   
   
this.width = null;   
   
this.height = null;   
   
this.left = null;   
   
this.top = null;   
  }
   
       
  
//Find out what kind of resize! Return a string  inlcluding the directions   
  function getDirection(el) {   
   
var xPos, yPos, offset, dir;   
   dir 
= "";   
     
   xPos 
= window.event.offsetX;   
   yPos 
= window.event.offsetY;   
     
   offset 
= 8//The distance from the edge in pixels   
     
   
if (yPos < offset) {
    dir 
+= "n";   
   }
 else if (yPos > el.offsetHeight - offset) {
    dir 
+= "s";  
   }
 
   
   
if (xPos < offset) {
    dir 
+= "w";   
   }
 else if (xPos > el.offsetWidth - offset) {
    dir 
+= "e"
   }
     
   
return dir;   
  }
   
    
  
function doDown() {   
   
var el = getReal(event.srcElement, "className""resizeMe");   
     
   
if (el == null{   
    theobject 
= null;   
    
return;   
   }
   
     
   dir 
= getDirection(el);   
   
if (dir == ""{
    
return
   }
  
     
   theobject 
= new resizeObject();   
     
   theobject.el 
= el;   
   theobject.dir 
= dir;   
     
   theobject.grabx 
= window.event.clientX;   
   theobject.graby 
= window.event.clientY;   
   theobject.width 
= el.offsetWidth;   
   theobject.height 
= el.offsetHeight;   
   theobject.left 
= el.offsetLeft;   
   theobject.top 
= el.offsetTop;   
     
   window.event.returnValue 
= false;   
   window.event.cancelBubble 
= true;   
  }
   
    
  
function doUp() {   
   
if (theobject != null{   
    theobject 
= null;   
   }
   
  }
   
    
  
function doMove() {   
   
var el, xPos, yPos, str, xMin, yMin;   
   xMin 
= 8//The smallest idth possible   
   yMin = 8//height   
     
   el 
= getReal(event.srcElement, "className""resizeMe");   
     
   
if (el.className == "resizeMe"{   
    str 
= getDirection(el);   
    
//Fix the cursor   
    if (str == ""{
     str 
= "default"
    }
 else {
      str 
+= "-resize";  
    }
 
    el.style.cursor 
= str;   
   }
        
   
//Dragging starts here   
   if (theobject != null{   
    
if (dir.indexOf("e"!= -1{   
     theobject.el.style.width 
= Math.max(xMin, theobject.width + window.event.clientX - theobject.grabx) + "px";   
    }
 
    
if (dir.indexOf("s"!= -1{   
     theobject.el.style.height 
= Math.max(yMin, theobject.height + window.event.clientY - theobject.graby) + "px";   
    }
 
    
if (dir.indexOf("w"!= -1{   
     theobject.el.style.left 
= Math.min(theobject.left + window.event.clientX - theobject.grabx, theobject.left + theobject.width - xMin) + "px";   
     theobject.el.style.width 
= Math.max(xMin, theobject.width - window.event.clientX + theobject.grabx) + "px";   
    }
   
    
if (dir.indexOf("n"!= -1{   
     theobject.el.style.top 
= Math.min(theobject.top + window.event.clientY - theobject.graby, theobject.top + theobject.height - yMin) + "px";   
     theobject.el.style.height 
= Math.max(yMin, theobject.height - window.event.clientY + theobject.graby) + "px";   
    }
         
    window.event.returnValue 
= false;   
    window.event.cancelBubble 
= true;   
   }
     
  }
       
  
function getReal(el, type, value) {   
   temp 
= el;   
   
while ((temp != null&& (temp.tagName != "BODY")) {   
    
if (eval("temp." + type) == value) {   
     el 
= temp;   
     
return el;   
    }
   
    temp 
= temp.parentElement;   
   }
   
   
return el;   
  }
   
    
  document.onmousedown 
= doDown;   
  document.onmouseup 
= doUp;   
  document.onmousemove 
= doMove;      
  
</SCRIPT>   
       
  
<meta content="Microsoft FrontPage 4.0" name="GENERATOR">   
  
<meta name="ProgId" content="FrontPage.Editor.Document">   
  
</head>      
  
<body>      
  
<div class="resizeMe" id="testDiv">   
   
<div id="innerNice">   
     
<table border="2" cellpadding="0" cellspacing="0" width="100%"> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr> 
  
<tr ><td valign=top >22222222</td><td> 22222222</td><td>22222222</td></tr>   
  
</table>   
   
</div>   
  
</div>   
   
  
</body>     
  
</html>   
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章