Advertisement
Guest User

Untitled

a guest
Dec 1st, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.83 KB | None | 0 0
  1. <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  2. <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  3.  
  4. <script>
  5. var overlaps = (function () {
  6. function getPositions( elem ) {
  7. var pos, width, height;
  8. pos = $( elem ).position();
  9. width = $( elem ).width();
  10. height = $( elem ).height();
  11. return [ [ pos.left, pos.left + width ], [ pos.top, pos.top + height ] ];
  12. }
  13.  
  14. function comparePositions( p1, p2 ) {
  15. var r1, r2;
  16. r1 = p1[0] < p2[0] ? p1 : p2;
  17. r2 = p1[0] < p2[0] ? p2 : p1;
  18. return r1[1] > r2[0] || r1[0] === r2[0];
  19. }
  20.  
  21. return function ( a, b ) {
  22. var pos1 = getPositions( a ),
  23. pos2 = getPositions( b );
  24. return comparePositions( pos1[0], pos2[0] ) && comparePositions( pos1[1], pos2[1] );
  25. };
  26. })();
  27. function set(){
  28. $(function () {
  29. var area = $( '#area' )[0],
  30. box = $( '#box0' )[0],
  31. html;
  32.  
  33. html = $( area ).children().not( box ).map( function ( i ) {
  34. return document.getElementById('boh').innerHTML = 'Red box + Box ' + ( i + 1 ) + ' = ' + overlaps( box, this );
  35. }).get().join( '' );
  36. });
  37. }
  38. </script>
  39.  
  40. <style>
  41. body {
  42. padding: 30px;
  43. color: #444;
  44. font-family: Arial, sans-serif;
  45. }
  46.  
  47. h1 {
  48. font-size: 24px;
  49. margin-bottom: 20px;
  50. }
  51.  
  52. #area {
  53. border: 2px solid gray;
  54. width: 500px;
  55. height: 400px;
  56. position: relative;
  57. }
  58.  
  59. #area > div {
  60. background-color: rgba(122, 122, 122, 0.3);
  61. position: absolute;
  62. text-align: center;
  63. font-size: 50px;
  64. width: 60px;
  65. height: 60px;
  66. }
  67.  
  68. #box0 {
  69. background-color: rgba(255, 0, 0, 0.5) !important;
  70. top: 150px;
  71. left: 150px;
  72. }
  73.  
  74. #box1 {
  75. top: 260px;
  76. left: 50px;
  77. }
  78.  
  79. #box2 {
  80. top: 110px;
  81. left: 160px;
  82. }
  83.  
  84. #box3 {
  85. top: 200px;
  86. left: 200px;
  87. }
  88.  
  89. #box4 {
  90. top: 50px;
  91. left: 400px;
  92. }
  93.  
  94. p {
  95. margin: 5px 0;
  96. }
  97.  
  98. * {
  99. -webkit-user-select: none;
  100. -moz-user-select: none;
  101. -ms-user-select: none;
  102. user-select: none;
  103. }
  104.  
  105. .disabled{
  106. pointer-events: none;
  107. }
  108. </style>
  109.  
  110. <h1>Detect overlapping with JavaScript</h1>
  111. <div id="area">
  112. <div id="box0" onDragStart="return false"></div>
  113. <div id="box2" onDragStart="return false"></div>
  114. </div>
  115.  
  116. <button id="down_btn" onclick="myMove4()">Down</button>
  117. <button id="up_btn" onclick="myMove()">Up</button>
  118. <div id="boh"></div>
  119.  
  120. <script>
  121. var down = false;
  122. var pos = 0;
  123.  
  124. window.addEventListener('mouseup', function(event){
  125. down = false;
  126. });
  127. window.addEventListener('mousedown', function(event){
  128. down = true;
  129. })
  130.  
  131. function myMove4() {
  132. setTimeout(() => {
  133. var elem = document.getElementById("box2");
  134. var id = setInterval(frame, 10);
  135. function frame() {
  136. if (pos == 350 || !down) {
  137. clearInterval(id);
  138. } else {
  139. pos++;
  140. elem.style.top = pos + 'px';
  141. }
  142. }
  143. }, 500);
  144. }
  145.  
  146. function myMove() {
  147. setTimeout(() => {
  148. var elem = document.getElementById("box2");
  149. var id = setInterval(frame, 10);
  150. function frame() {
  151. if (pos == 350 || !down) {
  152. clearInterval(id);
  153. } else {
  154. pos--;
  155. elem.style.top = pos + 'px';
  156. }
  157. }
  158. }, 500);
  159. }
  160.  
  161.  
  162. setInterval(() => {
  163.  
  164. set();
  165.  
  166. if(document.getElementById('boh').textContent == "Red box + Box 1 = true"){
  167. $("#down_btn").addClass("disabled");
  168. }
  169. else{
  170. $("#down_btn").removeClass("disabled");
  171. }
  172. }, 100);
  173. setInterval(() => {
  174.  
  175. set();
  176.  
  177. if(document.getElementById('boh').textContent == "Red box + Box 1 = true"){
  178. $("#down_btn").addClass("disabled");
  179. }
  180. else{
  181. $("#down_btn").removeClass("disabled");
  182. }
  183. }, 200);
  184. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement