NN4 DragGo to Drag

¿¹Á¦ 1


NN4¿¡¼­ ²ø±â´Â mousemove¸¦ »ç¿ëÇÕ´Ï´Ù. mousemove°¡ ÀϾ¸é ±× ¸¸Å­ layer¸¦ ¿ñÁ÷ÀÌ´Â °ÍÀÔ´Ï´Ù. ƯÁ¤ ¹üÀ§¿¡¼­ ÇÒ ¼ö ÀÖ°Ô captureEvents()·Î À̺¥Æ®°¡ ÀϾ´Â ¹üÀ§¸¦ Á¤Çϰí mousedown, mouseupÀ¸·Î mousemove¸¦ Á¦¾îÇÕ´Ï´Ù. ¼ø¼­·Î Çϸé..

1. Object.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP)
2. Object.onmousedown=À̺¥Æ®Çîµé·¯ ÇÔ¼ö; Object.onmouseup=À̺¥Æ®Çîµé·¯ ÇÔ¼ö
3. Object.captureEvents(Event.MOUSEMOVE)
4. Object.releaseEvents(Event.MOUSEMOVE);
ÁÖ·Î À§ÀÇ ½ÄÀÌ µË´Ï´Ù. 3.¹øÀº Object.onmousedownÀÇ À̺¥Æ® Çîµé·¯ ÇÔ¼ö ¾È¿¡¼­ ÁöÁ¤ÇÕ´Ï´Ù. ¸¶¿ì½º¸¦ ´­·¶À» ¶§¸¸ ²ø±â¸¦ ÇÑ´Ù´Â ¸»ÀÔ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é ¾Æ¹«µ¥¼­³ª ²ø±â°¡ µË´Ï´Ù.

±×¸®°í, 4.¹øÀ¸·Î Object.onmouseupÀÇ À̺¥Æ® Çîµé·¯ ÇÔ¼ö ¾È¿¡¼­ mousemoveÀ̺¥Æ®¸¦ ÇØÁ¦ÇÕ´Ï´Ù. ¸¶¿ì½º¸¦ ²ø°í ³ª¼­ ¹öưÀ» ³õÀº¸é ²ø±â¸¦ ¸ØÃß±â À§Çؼ­ ÀÔ´Ï´Ù.

²À mousedown, mouseupÀ» »ç¿ëÇÏ¿© mousemove¸¦ Á¦¾îÇØ¾ß¸¸ ÇÏ´Â °ÍÀº ¾Æ´Õ´Ï´Ù. °¡Àå ¾Ë±â ½±°í ´Ù¸¥ ÀÀ¿ëP/GÀÌ ÀÌ·± ±¸Á¶·Î µÇ¾ú±â ¶§¹®¿¡ ÀÌ·¸°Ô ÇÕ´Ï´Ù.

¿©±â¼­ ´ë¼Ò¹®ÀÚ´Â ²À ÁöÄѾßÇÕ´Ï´Ù.

document.div1.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP)
document.div1.onmousedown = beginDrag
document.div1.onmouseup = endDrag

oldX=oldY=newX=newY=0;

<div id=div1 style="position:absolute; width:100; left:100; top:100; 
	background-color:yellow; layer-background-color:yellow; clip:rect(0,100,100,0)"
	>div1 CSS Layer
</div>
div1 ·¹À̾¼­ mousedown, mouseupÀ̺¥Æ®¸¦ »ç¿ëÇÏ°Ô ÁöÁ¤Çϰí ÀÌ À̺¥Æ®°¡ ÀϾÀ» ¶§ »ç¿ëÇÒ ÇÔ¼ö·Î beginDrag, endDrag¸¦ °¢°¢ ÁöÁ¤ÇÕ´Ï´Ù.

¹ØÀÇ ¿ÜºÎº¯¼ö´Â layer¸¦ ²ø ¶§ »ç¿ëÇÒ º¯¼öµé ÀÔ´Ï´Ù.

function beginDrag(e) {
	document.div1.captureEvents(Event.MOUSEMOVE)
	document.div1.onmousemove = dragIt
	oldX = e.pageX
	oldY = e.pageY
}
document.div1.captureEvents(Event.MOUSEMOVE) ·Î ¸¶¿ì½º¸¦ ´©¸£¸é mousemoveÀ̺¥Æ®¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô Çϰí Çîµé·¯¿¡ ÇÔ¼ö dragItÀ» ÁöÁ¤Çß½À´Ï´Ù. ¸¶¿ì½º¸¦ ´©¸£°í ¿ñÁ÷À̸é dragIt ÇÔ¼ö°¡ È£ÃâµË´Ï´Ù.

oldX, oldY´Â ¸¶¿ì½º¸¦ ´­·¶À» ¶§, ¸¶¿ì½º¸¦ ¿ñÁ÷À̱â ÀüÀÇ °ªÀ» ÀúÀåÇÕ´Ï´Ù. ¸¶¿ì½º¸¦ ¿ñÁ÷À̸é dragIt ÇÔ¼ö¿¡¼­ ÀÌ °ªÀ» ¿ñÁ÷ÀÎ °ª°ú ºñ±³ÇÏ¿© div1 layer¸¦ À̵¿ÇÏ°Ô ÇÕ´Ï´Ù.

function dragIt(e) {
	newX = e.pageX - oldX;
	newY = e.pageY - oldY;

	oldX = e.pageX;
	oldY = e.pageY;

	document.div1.moveBy(newX, newY);	

	return false;
}
¿ñÁ÷ÀÎ °Å¸® ¸¸Å­ÀÇ °Å¸®¿Í ¸¶¿ì½º¸¦ ´­·¶À» ¶§ÀÇ °Å¸®¸¦ ºñ±³ÇÏ¿© À̵¿ÇÒ °÷À¸·Î newX, newY¿¡ ÀúÀåÇÕ´Ï´Ù. ±×¸®°í ´ÙÀ½ ¸¶¿ì½º À̵¿½Ã »ç¿ëÇϱâ À§Çؼ­ oldX, oldY¿¡ Áö±Ý ¸¶¿ì½ºÀÇ À§Ä¡¸¦ ÀúÀåÇÕ´Ï´Ù.

layer ¸Þ¼Òµå moveBy·Î À̵¿ÇÑ ¸¸Å­ div1 layer¸¦ À̵¿ÇÕ´Ï´Ù. return false´Â À̺¥Æ®ÀÇ ÀÛµ¿À» Ãë¼ÒÇÕ´Ï´Ù.

¿©±â¼­ À̺¥Æ®ÀÇ ÀÛµ¿À̶õ À̺¥Æ®Çîµé·¯¿¡ ÁöÁ¤µÈ ÇÔ¼ö°¡ ¾Æ´Ï°í, div1 layer¾ÈÀÇ mousemove, À̺¥Æ®¸¦ °¡Áö´Â ObjectÀÔ´Ï´Ù. Áï, ±ÛÀÚµéÀÌ ¼±ÅûóŰ¡ µÇÁö¾Ê°Ô ÇÕ´Ï´Ù.

function endDrag() {
	document.div1.onmousemove = 0;
	document.div1.releaseEvents(Event.MOUSEMOVE)
}
mouseupÀ¸·Î ¿øÇÏ´Â À§Ä¡±îÁö layer¸¦ À̵¿ÇßÀ¸¸é mousemove¸¦ »ç¿ëÇÏÁö ¾Ê°Ô ÇØÁ¦ÇÕ´Ï´Ù.
function beginDrag(e) {
	document.div1.captureEvents(Event.MOUSEMOVE)
	document.div1.onmousemove = dragIt
	oldX = e.pageX
	oldY = e.pageY
}

function dragIt(e) {
	newX = e.pageX - oldX;
	newY = e.pageY - oldY;

	oldX = e.pageX;
	oldY = e.pageY;

	document.div1.moveBy(newX, newY);	

	return false;
}

function endDrag() {
	document.div1.onmousemove = 0;
	document.div1.releaseEvents(Event.MOUSEMOVE)
}

function setDrag() {
	document.div1.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP)
	document.div1.onmousedown = beginDrag
	document.div1.onmouseup = endDrag

	oldX=oldY=newX=newY=0;
}
</script>
</head>
<body onLoad="setDrag()">
<div id=div1 style="position:absolute; width:100; left:100; top:100; background-color:yellow;
		 layer-background-color:yellow; clip:rect(0,100,100,0)"
>div1 CSS Layer</div>
½ÇÇà Çϱâ


TOP