Mega Code Archive

 
Categories / JavaScript DHTML / HTML
 

Dragging a Layer (W3C)

/* JavaScript Bible, Fourth Edition by Danny Goodman  John Wiley & Sons CopyRight 2001 */ <HTML> <HEAD> <TITLE>Layer Dragging</TITLE> <STYLE TYPE="text/css"> .draggable {cursor:hand} </STYLE> <SCRIPT LANGUAGE="JavaScript"> var engaged = false var offsetX = 0 var offsetY = 0 function dragIt(evt) {     evt = (evt) ? evt : (window.event) ? window.event : ""     var targElem = (evt.target) ? evt.target : evt.srcElement     if (engaged) {         if (targElem.className == "draggable") {             while (targElem.id != "myLayer" && targElem.parentNode) {                 targElem = targElem.parentNode             }             if (evt.pageX) {                 targElem.style.left = evt.pageX - offsetX + "px"                 targElem.style.top = evt.pageY - offsetY + "px"             } else {                 targElem.style.left = evt.clientX - offsetX + "px"                 targElem.style.top = evt.clientY - offsetY + "px"             } return false         }     } } function engage(evt) {     evt = (evt) ? evt : (window.event) ? window.event : ""     var targElem = (evt.target) ? evt.target : evt.srcElement     if (targElem.className == "draggable") {         while (targElem.id != "myLayer" && targElem.parentNode) {             targElem = targElem.parentNode         }         if (targElem.id == "myLayer") {             engaged = true             if (evt.pageX) {                 offsetX = evt.pageX - targElem.offsetLeft                 offsetY = evt.pageY - targElem.offsetTop                     } else {                 offsetX = evt.offsetX - document.body.scrollLeft                 offsetY = evt.offsetY - document.body.scrollTop                 if (navigator.userAgent.indexOf("Win") == -1) {                     offsetX += document.body.scrollLeft                     offsetY += document.body.scrollTop                    }                  }             return false         }     } } function release(evt) {     evt = (evt) ? evt : (window.event) ? window.event : ""     var targElem = (evt.target) ? evt.target : evt.srcElement     if (targElem.className == "draggable") {         while (targElem.id != "myLayer" && targElem.parentNode) {             targElem = targElem.parentNode         }         if (engaged && targElem.id == "myLayer") {             engaged = false         }     } } </SCRIPT> </HEAD> <BODY> <H1>Dragging a Layer</H1> <HR> <DIV ID="myLayer" CLASS="draggable" STYLE="position:absolute; top:90; left:100;  width:300; height:190; background-color:lightgreen">     <SPAN CLASS="draggable"><B>Drag me around the window.</B></SPAN> </LAYER> <SCRIPT LANGUAGE="JavaScript"> document.onmousedown = engage document.onmouseup = release document.onmousemove = dragIt document.onmouseout = release </SCRIPT> </BODY> </HTML>