温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

HTML5实现元素拖拽的方法

发布时间:2021-07-02 11:01:51 来源:亿速云 阅读:172 作者:小新 栏目:web开发

这篇文章将为大家详细讲解有关HTML5实现元素拖拽的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

先上示例:

index.html

XML/HTML Code复制内容到剪贴板

  1. <!doctype html>  

  2. <html>  

  3. <head>  

  4.     <meta charset="UTF-8">  

  5.     <title>Drag</title>  

  6.     <style>  

  7.         .box{   

  8.             width: 400px;   

  9.             height: 400px;   

  10.             float: left;   

  11.         }   

  12.         #box1{   

  13.             background: #CCC;   

  14.         }   

  15.         #box2{   

  16.             background: #FF0;   

  17.         }   

  18.     </style>  

  19. </head>  

  20. <body>  

  21. <div id="box1" class="box"></div>  

  22. <div id="box2" class="box"></div>  

  23. <img src="https://cache.yisu.com/upload/information/20210312/296/134176.jpg" alt="" id="img1" />  

JavaScript Code复制内容到剪贴板

  1. <script src="app1.js"></script>   

  2. </body>   

  3. </html>   

  4.   

  5. app1.js   

  6. /**  

  7.  *   app1.js  

  8.  */  

  9.   

  10. var oBox1,   

  11.     oBox2,   

  12.     oImg1;   

  13.   

  14. window.onload = function(){   

  15.     oBox1 = document.getElementById('box1');   

  16.     oBox2 = document.getElementById('box2');   

  17.     oImg1 = document.getElementById('img1');   

  18.   

  19.     //   

  20.     oBox1.ondragover = oBox2.ondragover = function(e){   

  21.         e.preventDefault();   

  22.     };   

  23.   

  24.     //   

  25.     oImg1.ondragstart = function(e){   

  26.         e.dataTransfer.setData('text', e.target.id);   

  27.     };   

  28.   

  29.     oBox1.ondrop = dropImg;   

  30.     oBox2.ondrop = dropImg;   

  31. };   

  32.   

  33. function dropImg(e){   

  34.     e.preventDefault();   

  35.     var tempImg = document.getElementById(e.dataTransfer.getData('text'));   

  36.     e.target.appendChild(tempImg);   

  37. }    

涉及知识点

在拖放的过程中会触发以下事件:
在拖动目标上触发事件 (源元素)
  ondragstart - 用户开始拖动元素时触发
  ondrag - 元素正在拖动时触发
  ondragend - 用户完成元素拖动后触发

释放目标时触发的事件
  ondragenter - 当被鼠标拖动的对象进入其容器范围内时触发此事件
  ondragover - 当某被拖动的对象在另一对象容器范围内拖动时触发此事件
  ondragleave - 当被鼠标拖动的对象离开其容器范围内时触发此事件
  ondrop - 在一个拖动过程中,释放鼠标键时触发此事件

event对象(以e代替)

e.target

  W3Cschool上的解释是:返回触发此事件的元素(事件的目标节点),这个target属性只兼容ie9及以上

e.preventDefault()

  取消事件的默认动作。

e.dataTransfer.setData()

  设置被拖数据的数据类型和值:

代码如下:

e.dataTransfer.setData("Text",ev.target.id);       //第一个参数为Text(小写的也行)

e.dataTransfer.getData()

  获得被拖的数据:

代码如下:

e.dataTransfer.getData("Text");

关于“HTML5实现元素拖拽的方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI