拖拽测试.html 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <!DOCTYPE html>
  2. <html>
  3. <head lang="en">
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <style>
  7. .one {
  8. width: 400px;
  9. height: 400px;
  10. border: 1px solid #000;
  11. }
  12. .one > div, .two > div {
  13. width: 98px;
  14. height: 98px;
  15. border: 1px solid #000;
  16. border-radius: 50%;
  17. background-color: red;
  18. float: left;
  19. text-align: center;
  20. line-height: 98px;
  21. }
  22. .two {
  23. width: 400px;
  24. height: 400px;
  25. border: 1px solid #000;
  26. position: absolute;
  27. left: 600px;
  28. top: 200px;
  29. }
  30. </style>
  31. </head>
  32. <body>
  33. <div class="one">
  34. <div draggable="true">1</div>
  35. <div draggable="true">2</div>
  36. <div draggable="true">3</div>
  37. <div draggable="true">4</div>
  38. <div draggable="true">5</div>
  39. <div draggable="true">6</div>
  40. <div draggable="true">7</div>
  41. <div draggable="true">8</div>
  42. </div>
  43. <div class="two"></div>
  44. <script>
  45. var boxs = document.querySelectorAll('.one div');
  46. // 临时的盒子 用于存放当前拖拽的元素
  47. var two = document.querySelector('.two');
  48. var temp = null;
  49. // 给8个小盒子分别绑定拖拽事件
  50. for (var i = 0; i < boxs.length; i++) {
  51. boxs[i].ondragstart = function () {
  52. // 保持当前拖拽的元素
  53. temp = this;
  54. console.log(temp);
  55. }
  56. boxs[i].ondragend = function () {
  57. // 当拖拽结束 ,清空temp
  58. temp = null;
  59. console.log(temp);
  60. }
  61. }
  62. // 目标元素的拖拽事件
  63. two.ondragover = function (e) {
  64. // 阻止拖拽的默认行为
  65. e.preventDefault();
  66. }
  67. // 当在目标元素上松开鼠标是触发
  68. two.ondrop = function () {
  69. // 将拖拽的元素追加到 two里面来
  70. this.appendChild(temp);
  71. }
  72. </script>
  73. </body>
  74. </html>