Advertisement
asimryu

drag & drop photo view

Dec 28th, 2022 (edited)
1,655
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 2.55 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.         #dropbox {
  10.             width: 500px;
  11.             height: 300px;
  12.             text-align: center;
  13.             line-height: 300px;
  14.             border: 5px solid indigo;
  15.             margin-bottom: 50px;
  16.         }
  17.         .photo {
  18.             display: inline-block;
  19.             margin: 5px;
  20.             border: 1px solid #888;
  21.             border-radius: 5px;
  22.             position: relative;
  23.         }
  24.         .photo img { max-width: 300px; }
  25.         .photo span {
  26.             position: absolute;
  27.             top: 5px;
  28.             right: 5px;
  29.             cursor: pointer;
  30.         }
  31.     </style>
  32. </head>
  33. <body>
  34.     <div id="dropbox" ondrop="dropHandler(event)" ondragover="dragOverHandler(event)" ondragleave="ondragLeaveHandler(event)">
  35.         Drop Images Here.
  36.     </div>
  37.     <div id="photobox"></div>
  38.     <script>
  39.         const photobox = document.querySelector("#photobox");
  40.         const dropbox = document.querySelector("#dropbox");
  41.  
  42.         const dropHandler = (event) => {
  43.             event.preventDefault();
  44.             dropbox.style.backgroundColor = "white";
  45.             let photos = event.dataTransfer.items;
  46.             dropbox.innerHTML = "";
  47.             preview(photos);
  48.         }
  49.  
  50.         const dragOverHandler = (event) => {
  51.             event.preventDefault();
  52.             dropbox.style.backgroundColor = "pink";
  53.         }
  54.  
  55.         const ondragLeaveHandler = (event) => {
  56.             event.preventDefault();
  57.             dropbox.style.backgroundColor = "white";
  58.         }
  59.  
  60.         const preview = (photos) => {
  61.             if( ! photos ) return;
  62.             for(let i=0; i<photos.length; i++) {
  63.                if (photos[i].kind === 'file' && photos[i].type.match("^image/")) {
  64.                    let reader = new FileReader();
  65.                    let file = photos[i].getAsFile();
  66.                    reader.readAsDataURL(file);
  67.                    reader.onload = (event) => {
  68.                         var src = event.target.result;
  69.                         var img = "<div class='photo'><span onclick='removePhoto(this)'>X</span><img src='" + src + "'></div>";
  70.                         photobox.innerHTML += img;
  71.                     }
  72.                 }
  73.             }
  74.         }
  75.  
  76.         const removePhoto = (elm) => elm.parentElement.remove();
  77.     </script>
  78. </body>
  79. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement