| NN4 Drag | Go to Drag |
| ¿¹Á¦ 1 | |
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>
^___^