Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. <!DOCTYPE html>
  2.  
  3. <head>
  4. <script>
  5. /*
  6. * CREDIT: https://stackoverflow.com/questions/10588607/tutorial-for-html5-dragdrop-sortable-list
  7. */
  8. const fruit = ["Apples 🍎", "Oranges 🍊", "Bananas 🍌", "Peaches πŸ‘", "Watermelons πŸ‰", "Grapes πŸ‡", "Kiwi πŸ₯"];
  9. var _el;
  10.  
  11.  
  12. function dragOver(e) {
  13. console.log("dragOver")
  14. if (isBefore(_el, e.target))
  15. e.target.parentNode.insertBefore(_el, e.target);
  16. else
  17. e.target.parentNode.insertBefore(_el, e.target.nextSibling);
  18. }
  19.  
  20. function dragStart(e) {
  21. console.log("dragStart")
  22. e.dataTransfer.effectAllowed = "move";
  23. e.dataTransfer.setData("text/plain", null);
  24. _el = e.target;
  25. }
  26.  
  27. function isBefore(el1, el2) {
  28. if (el2.parentNode === el1.parentNode)
  29. for (var cur = el1.previousSibling; cur && cur.nodeType !== 9; cur = cur.previousSibling)
  30. if (cur === el2)
  31. return true;
  32. return false;
  33. }
  34.  
  35. function createList() {
  36. let list = document.getElementById("list");
  37.  
  38. let html = "";
  39. fruit.forEach((item) => {
  40. html = html + "<li><div class=\"fruit\" draggable=true ondragover=\"dragOver(event)\" ondragstart=\"dragStart(event)\">";
  41. html = html + item;
  42. html = html + "</div></li>"
  43.  
  44. });
  45.  
  46. list.innerHTML = html;
  47. }
  48. </script>
  49. <style>
  50. li {
  51. margin: 1px;
  52. }
  53. .fruit {
  54. user-select: none;
  55. width: 200px;
  56. border-style: solid;
  57. border-width: 1px;
  58. border-color: gray;
  59. padding: 10px;
  60. text-align: center;
  61. }
  62. </style>
  63. </head>
  64.  
  65. <body>
  66. <ul id="list" style="list-style-type:none;font-size: 18pt; font-weight:bold;"></ul>
  67. </body>
  68. <script>
  69. createList();
  70. </script>
  71.  
  72. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement