Advertisement
irobust

HTML5:Dragdrop

Nov 20th, 2018
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 2.58 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.     <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7.     <title>Document</title>
  8.     <style>
  9.         .container{
  10.             display: flex;
  11.             align-items: center;
  12.             justify-content: center;
  13.             width: 100%;
  14.         }
  15.         .area{
  16.             display: block;
  17.             background-color: #999;
  18.             width: 300px;
  19.             height: 600px;
  20.             margin: 30px;
  21.         }
  22.  
  23.         .item{
  24.             width: 100px;
  25.             height: 100px;
  26.             margin: 5px;
  27.             background-color: cadetblue;
  28.             text-align: center;
  29.             line-height: 100px;
  30.             float: left;
  31.         }
  32.     </style>
  33.     <script src="node_modules/jquery/dist/jquery.min.js"></script>
  34.     <script>
  35.         var draggableObj = null;
  36.         var handleDragStart = function(){
  37.             draggableObj = this;
  38.             console.log(draggableObj);
  39.         }
  40.  
  41.         var handleDrop = function(e){
  42.             e.preventDefault();
  43.  
  44.             if(!$(this).hasClass('start')){
  45.                 // move existing object to temp area
  46.                 $(this).children().appendTo('.temp');
  47.             }
  48.  
  49.             // append new object to droppable area
  50.             $(draggableObj).appendTo(this);
  51.  
  52.         }
  53.  
  54.         $(function(){
  55.             // draggable
  56.             var draggableItems = document.querySelectorAll('.item.draggable');
  57.             for(item of draggableItems){
  58.                 item.addEventListener('dragstart', handleDragStart, false);
  59.             }
  60.  
  61.             // droppable
  62.             var droppableArea = document.querySelectorAll('.area.droppable');
  63.             for(area of droppableArea){
  64.                 area.addEventListener('dragover', function(e){ e.preventDefault(); }, false);
  65.                 area.addEventListener('dragenter', function(e){ e.preventDefault(); }, false);
  66.                 area.addEventListener('drop', handleDrop, false);
  67.             }
  68.         });
  69.     </script>
  70. </head>
  71. <body>
  72.     <div class="container">
  73.         <div class="area droppable start">
  74.             <div class="item draggable" draggable="true">1</div>
  75.             <div class="item draggable" draggable="true">2</div>
  76.             <div class="item draggable" draggable="true">3</div>
  77.         </div>
  78.         <div class="area droppable">
  79.             <div class="item draggable" draggable="true">4</div>
  80.         </div>
  81.         <div class="area temp"></div>
  82.     </div>
  83. </body>
  84. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement