---
title: "drag and resize"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/63921-drag-and-resize"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "clown"
published: "2003-01-05T21:13:17.000Z"
updated: "2003-01-11T19:11:00.000Z"
replies: 2
views: 204
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/63921-drag-and-resize"
---

# drag and resize

## #1 — clown, 2003-01-05T21:13Z

Hej,

jag har följt tråden: [Markera bild m lager samt förminska lagret.](http://www.webforum.nu/showthread.php?s=&threadid=61575)  och har tyckt den koden som johnsen har föreslagit ser mycket bra ut.

Men nu försöker jag förändra det scriptet lite så att man kan göra resizing på många lager på en gång... men det fungerar inte så bra. Lagret som man drar i hänger inte med ordentligt som det gör när man bara har ett lager på sidan...
Varför?

Testa själv här: [Drag and resize](http://w1.421.telia.com/~u42135289/drag_and_resize.html) 

Här kommer koden:

```
<script>

document.onmousemove = cropIt
document.onmousedown = lockIt
document.onmouseup = unLockIt

xlock = 0;
inPos = 0;
foundElement = 0;
//alert(myinfo.document.body.innerHTML);

function cropIt(e){
element = document.getElementById("foo")
element2 = document.getElementById("foo2")

x = (document.all)? event.x : e.pageX ;
y = (document.all)? event.y : e.pageY;

//status=inPos
status=foundElement

	if(	(element.offsetWidth - (x - parseInt(element.style.left))) < 0 &&
		(element.offsetWidth - (x - parseInt(element.style.left))) >-9 &&
		(element.offsetHeight - (y - parseInt(element.style.top))) < 0 &&
		(element.offsetHeight - (y - parseInt(element.style.top))) >-9 ){
			element.style.border="1px solid red"
			document.body.style.cursor="se-resize";
			inPos = 1;
			foundElement=1;
	}
	
	else if(	(element2.offsetWidth - (x - parseInt(element2.style.left))) < 0 &&
				(element2.offsetWidth - (x - parseInt(element2.style.left))) >-9 &&
				(element2.offsetHeight - (y - parseInt(element2.style.top))) < 0 &&
				(element2.offsetHeight - (y - parseInt(element2.style.top))) >-9 ){
					element2.style.border="1px solid red"
					document.body.style.cursor="se-resize";
					inPos = 1;
					foundElement=2;
	}
	
	else{
		document.body.style.cursor="default";
		switch (foundElement) {   
			case 1 :       
				element.style.border="1px solid blue"
				break;
			case 2 :       
				element2.style.border="1px solid blue"
				break;
			}
		inPos = 0;
		foundElement=0;
	}

	if(xlock==1){
		switch (foundElement) {   
			case 1 :       
				element.style.width = x - parseInt(element.style.left);
				element.style.height = y - parseInt(element.style.top);
				break;
			case 2 :       
				element2.style.width = x - parseInt(element2.style.left);
				element2.style.height = y - parseInt(element2.style.top);
				break;
			}

	}
}

function lockIt(){
element = document.getElementById("foo")
element2 = document.getElementById("foo2")
	if(inPos == 1){
		switch (foundElement) {   
			case 1 :       
				element.style.border="1px solid red"
				break;
			case 2 :       
				element2.style.border="1px solid red"
				break;
			}
		xlock = 1
	}
}

function unLockIt(){
element = document.getElementById("foo")
element2 = document.getElementById("foo2")
		switch (foundElement) {   
			case 1 :       
				element.style.border="1px solid blue"
				break;
			case 2 :       
				element2.style.border="1px solid blue"
				break;
			}
	xlock = 0
}
</script>

Drag i bilden precis nedanför det nedre högra hörnet...

<div id="foo2" style="position:absolute;top:350px; left:350px; width:120px; height:120px; overflow:hidden; border:1px solid blue;">
<center><img src="resize2.jpg" galleryimg="no"></center>
</div>

<div id="foo" style="position:absolute;top:50px; left:50px; width:120px; height:120px; overflow:hidden; border:1px solid blue;">
<center><img src="resize.jpg" galleryimg="no"></center>
</div>
```

Hjälp mig, snälla!

Permalänk: https://www.webforum.nu/p/63921

## #2 — Jojoxx, 2003-01-05T21:38Z

Try this.

```
<script>
document.onmousemove = cropIt
document.onmousedown = lockIt
document.onmouseup = unLockIt

xlock = 0;
inPos = 0;
element=false;

function cropIt(e){
x = (document.all)? event.x : e.pageX ;
y = (document.all)? event.y : e.pageY;

status=inPos
	if(!element){ return; }

	if( (element.offsetWidth - (x - parseInt(element.style.left))) < 0 &&
		(element.offsetWidth - (x - parseInt(element.style.left))) >-9 &&
		(element.offsetHeight - (y - parseInt(element.style.top))) < 0 &&
		(element.offsetHeight - (y - parseInt(element.style.top))) >-9 ){
			document.body.style.cursor="se-resize";
			inPos = 1;
	}
	else{
		document.body.style.cursor="default";
		inPos = 0;
	}
	if(xlock==1){
		element.style.width = x - parseInt(element.style.left)
		element.style.height = y - parseInt(element.style.top)
	}

	}

	function lockIt(){
		if(inPos == 1){
			xlock = 1
		}
	}
	function unLockIt(){
		xlock = 0
	}
</script>

Drag i bilden precis nedanför det nedre högra hörnet...

<div onmouseover="if(xlock==0){element=this}" id="foo" style="position:absolute;top:50px; left:50px; width:120px; height:120px; overflow:hidden; border:1px solid red;">
<img src="bild.jpg" galleryimg="no">
</div>

<div onmouseover="if(xlock==0){element=this}" id="bar" style="position:absolute;top:200px; left:200px; width:120px; height:120px; overflow:hidden; border:1px solid red;">
<img src="bild.jpg" galleryimg="no">
</div>
```

Permalänk: https://www.webforum.nu/p/903027

## #3 — clown, 2003-01-11T19:11Z

Tack,

det fungerar utmärkt.
ifs så funkar bara om man låter musen gå via objektet, men det kan jag nog acceptera.

det jag undrar över nu är om man skulle kunna få detta att fungera placerat relativt till andra div:ar, eller inuti en tabell?

Hur gör man då?

Permalänk: https://www.webforum.nu/p/909905

---

Tråden på webben: https://www.webforum.nu/amne/javascript/63921-drag-and-resize
