边框处拖动鼠标改变div大小

边框处拖动鼠标改变div大小

<html>

<head>
<title>改变层的大小-阿里西西WEB开发</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>
/
// Generic Resize by Erik Arvidsson                                    //
//                                                                     //
// You may use this script as long as this disclaimer is remained.     //
// See www.dtek.chalmers.se/~d96erik/dhtml/ for mor info               //
//                                                                     //
// How to use this script!                                             //
// Link the script in the HEAD and create a container (DIV, preferable //
// absolute positioned) and add the class="resizeMe" to it.            //
/

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 width 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">
    <p align="center"> </p>
    <p align="center">
请在边框处拖动鼠标
    <p> </p>
    <p> </p>
    <p> </p>
</div>
</div>
</body>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值