lemansky

Untitled

Mar 23rd, 2021 (edited)
674
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 3.00 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7.     <title>Document</title>
  8.     <style>
  9.         .draggable{
  10.             position:absolute;
  11.             z-index:1;
  12.             top:0px;
  13.             background:plum;
  14.         }
  15.         .draggable:hover{
  16.             cursor: pointer;
  17.         }
  18.         .draggable:active{
  19.             cursor:move;
  20.         }
  21.         .td-draggable{
  22.             z-index:1;
  23.         }
  24.         table{
  25.             margin-top:20px;
  26.         }
  27.         td{
  28.             padding:8px;
  29.             width:100px;
  30.             height:100px;
  31.         }
  32.         .red{
  33.             background:rgb(185, 0, 0);
  34.         }
  35.         .purple{
  36.             background:rgb(73, 2, 167);
  37.         }
  38.         .blue{
  39.             background:rgb(0, 129, 204);
  40.         }
  41.         .green{
  42.             background:rgb(76, 156, 1);
  43.         }
  44.         .yellow{
  45.             background:rgb(243, 227, 0);
  46.         }
  47.         .orange{
  48.             background:rgba(255, 166, 0);
  49.         }
  50.     </style>
  51. </head>
  52. <body>
  53.     <div class="draggable">
  54.         Draggable Text
  55.     </div>
  56.     <table>
  57.         <tr>
  58.             <td class="red"></td>
  59.             <td class="green"></td>
  60.             <td class="blue"></td>
  61.         </tr>
  62.         <tr>
  63.             <td class="purple"></td>
  64.             <td class="yellow"></td>
  65.             <td class="orange"></td>
  66.         </tr>
  67.     </table>
  68.     <script>
  69.         let drag = document.getElementsByClassName('draggable')[0];
  70.         drag.addEventListener('mousedown', (e) =>{
  71.             drag.classList.add('active-drag');
  72.             // _drag.style['pointer-events'] = 'none';
  73.         });
  74.         document.addEventListener('mouseup', (e) =>{
  75.             drag.classList.remove('active-drag');
  76.             // _drag.style['pointer-events'] = 'auto';
  77.         });
  78.         document.addEventListener('mousemove', (e) =>{
  79.             if(drag.classList.contains('active-drag')) {
  80.                 drag.style.top = e.pageY - drag.offsetHeight/2 + "px";
  81.                 drag.style.left = e.pageX - drag.offsetWidth/2 + "px";
  82.             }
  83.         });
  84.         let cells = document.getElementsByTagName('td');
  85.         for(item of cells){
  86.             item.addEventListener('mousemove', (e) => {
  87.                 if(e.target.classList.contains('td-draggable')){
  88.                     e.target.style.top = e.clientY - e.target.offsetHeight/2 + "px";
  89.                     e.target.style.left = e.clientX - e.target.offsetWidth/2 + "px";
  90.                 }
  91.             });
  92.             item.addEventListener('mouseout', (e) => {
  93.                 e.target.style.background = null;
  94.             });
  95.             item.addEventListener('click', (e) => {
  96.                 if(e.target.classList.toggle('td-draggable')){
  97.                     e.target.style.position = 'absolute';
  98.                 }
  99.             })
  100.         }
  101.     </script>
  102. </body>
  103. </html>
Add Comment
Please, Sign In to add comment