失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > jquery对div的移动以及改变大小

jquery对div的移动以及改变大小

时间:2020-09-26 06:57:15

相关推荐

jquery对div的移动以及改变大小

<html>

<head>

<title>拖动鼠标改变div层的大小宽度</title>

<meta content="text/html; charset=utf-8" 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: 90%;

width: 100%;

overflow: auto;

border: 2px inset white;

padding: 8px;

background-position: 0% 50%;

margin-top: 10%;

}

.drag {

position: absolute;

background: #0000CC;

top: 100px;

left: 200px;

padding: 0;

height: 1;

width: 1;

}

</style>

<meta content="Microsoft FrontPage 4.0" name="GENERATOR">

<meta name="ProgId" content="FrontPage.Editor.Document">

</head>

<body>

<div class="drag">

<div class="resizeMe" id="testDiv">

<div id="innerNice">

<p align="center"></p>

<p align="center">

请在边框处拖动鼠标

<p></p>

<p></p>

<p></p>

<p align="center">~~~~~~~~~~~~</p>

</div>

</div>

</div>

</body>

<script type="text/javascript" src="jquery.min.js"></script>

<script>

var theobject = null; //This gets a value as soon as a resize start

var remove=false;

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;

remove = false;

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;

}

remove = true;

}

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;

$(".drag").ready(function(){

var _x,_y;

$(".drag").mousedown(function(e){

move=true;

_x=e.pageX-parseInt($(".drag").css("left"));

_y=e.pageY-parseInt($(".drag").css("top"));

});

$(document).mousemove(function(e){

if(move&&remove){

var x=e.pageX-_x;//控件左上角到屏幕左上角的相对位置

var y=e.pageY-_y;

$(".drag").css({"top":y,"left":x});

}

}).mouseup(function(){

move=false;

});

})

</script>

</html>

下载地址:/download/sdf295953/10618749

如果觉得《jquery对div的移动以及改变大小》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。