Guest User

Untitled

a guest
Jan 21st, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.37 KB | None | 0 0
  1. <html>
  2. <head>
  3. <title>Drag and Drop</title>
  4. <style type="text/css">
  5. #box {
  6. border: 3px dashed #999;
  7. background-color: red;
  8. padding: 3px;
  9. width: 50px;
  10. height: 50px;
  11. border: 3px dashed #999;
  12. padding: 1px;
  13. position: absolute;
  14. }
  15.  
  16. #boxdrop {
  17. border: 3px dashed #999;
  18. background-color: blue;
  19. padding: 3px;
  20. width: 460px;
  21. height: 200px;
  22. margin: 100 100 100 100;
  23. position: absolute;
  24. float: left;
  25. }
  26.  
  27. #red {
  28. border: 3px dashed #999;
  29. background-color: red;
  30. padding: 3px;
  31. width: 50px;
  32. height: 50px;
  33. border: 3px dashed #999;
  34. padding: 1px;
  35. position: absolute;
  36. }
  37.  
  38. #blue {
  39. border: 3px dashed #999;
  40. background-color: blue;
  41. padding: 3px;
  42. width: 460px;
  43. height: 200px;
  44. margin: 100 100 100 100;
  45. position: absolute;
  46. float: left;
  47. }
  48. </style>
  49. <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR" />
  50. <script type="text/javascript">
  51. function cancelEvent(e) {
  52. e = e ? e : window.event;
  53. if (e.stopPropagation)
  54. e.stopPropagation();
  55. if (e.preventDefault)
  56. e.preventDefault();
  57. e.cancelBubble = true;
  58. e.cancel = true;
  59. e.returnValue = false;
  60. return false;
  61. }
  62. function addEvent(type, el, handler, bubbling) {
  63. if (document.addEventListener) {
  64. document.addEventListener(type, handler, bubbling);
  65. } else if (document.attachEvent) {
  66. el.setCapture();
  67. el.attachEvent("on" + type, handler);
  68. }
  69. }
  70. function removeEvent(type, el, handler, bubbling) {
  71. if (document.removeEventListener) {
  72. document.removeEventListener(type, handler, bubbling);
  73. } else if (document.detachEvent) {
  74. el.detachEvent("on" + type, handler);
  75. el.releaseCapture();
  76. }
  77. }
  78.  
  79. function mouseDown(event) {
  80. var elementToDrag = document.getElementById(dragobj);
  81. var targetNode = document.getElementById(dropArea);
  82. var elementToDrag2 = elementToDrag.cloneNode(true);
  83. document.body.appendChild(elementToDrag2);
  84.  
  85. var startX = event.clientX, startY = event.clientY;
  86. var origX = elementToDrag.offsetLeft, origY = elementToDrag.offsetTop;
  87. var deltaX = startX - origX, deltaY = startY - origY;
  88.  
  89. addEvent("mousemove", elementToDrag, moveHandler, true);
  90. addEvent("mouseup", elementToDrag, upHandler, true);
  91.  
  92. cancelEvent(event);
  93.  
  94. function computeDistance(e) {
  95. e = e ? e : window.event;
  96. var t1 = targetNode.offsetLeft;
  97. var t2 = t1 + targetNode.offsetWidth;
  98. var t3 = targetNode.offsetTop;
  99. var t4 = t3 + targetNode.offsetHeight;
  100. var isSatisfied = (t1 < e.clientX) && (t2 > e.clientX) && (t3 < e.clientY) && (t4 > e.clientY);
  101.  
  102. if (isSatisfied) {
  103. alert("Drop!");
  104. }
  105. elementToDrag2.style.visibility = 'hidden';
  106. return cancelEvent(e);
  107. }
  108.  
  109. function moveHandler(e) {
  110. e = e ? e : window.event;
  111. elementToDrag2.style.visibility = 'visible';
  112. elementToDrag2.style.left = (e.clientX - deltaX) + "px";
  113. elementToDrag2.style.top = (e.clientY - deltaY) + "px";
  114.  
  115. return cancelEvent(e);
  116. }
  117.  
  118. function upHandler(e) {
  119. e = e ? e : window.event;
  120. computeDistance(e);
  121. removeEvent("mouseup", elementToDrag, upHandler, true);
  122. removeEvent("mousemove", elementToDrag, moveHandler, true);
  123.  
  124. return cancelEvent(e);
  125. }
  126. }
  127.  
  128. function setupEvents() {
  129. addEvent("mousedown", document.getElementById(dragobj), mouseDown, true);
  130. }
  131.  
  132. var dragobj = "box";
  133. var dropArea = "boxdrop";
  134. //var dragobj = "red";
  135. //var dropArea = "blue";
  136. window.onload = setupEvents;
  137. </script>
  138. </head>
  139. <body>
  140. <div id="box">1</div>
  141. <div id="boxdrop"></div>
  142.  
  143.  
  144. <div id="red">1</div>
  145. <div id="blue"></div>
  146. </body>
  147. </html>
Add Comment
Please, Sign In to add comment