文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

HTML5实现元素拖拽的方法

2024-04-02 19:55

关注

这篇文章将为大家详细讲解有关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="/file/upload/202210/19/mpozqljkjoy.jpg" alt="" id="img1" />  

JavaScript Code复制内容到剪贴板

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

  2. </body>   

  3. </html>   

  4.   

  5. app1.js   

  6.   

  7.   

  8. var oBox1,   

  9.     oBox2,   

  10.     oImg1;   

  11.   

  12. window.onload = function(){   

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

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

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

  16.   

  17.     //   

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

  19.         e.preventDefault();   

  20.     };   

  21.   

  22.     //   

  23.     oImg1.ondragstart = function(e){   

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

  25.     };   

  26.   

  27.     oBox1.ondrop = dropImg;   

  28.     oBox2.ondrop = dropImg;   

  29. };   

  30.   

  31. function dropImg(e){   

  32.     e.preventDefault();   

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

  34.     e.target.appendChild(tempImg);   

  35. }    

涉及知识点

在拖放的过程中会触发以下事件:
在拖动目标上触发事件 (源元素)
  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实现元素拖拽的方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯