设置元素为可拖放

draggable 属性设置为 true: <img draggable="true" /> 
拖动什么 - ondragstart 和 setData()
dataTransfer.setData() 方法设置被拖数据的数据类型和值: function drag(e) { e.dataTransfer.setData("text/html", value); }注:"text/html"参数,我在Mac上用Safari打开,遇到过不能正常解析,解决方法把html和text位置互换一下。
放到何处 - ondragover
ondragover 事件规定在何处放置被拖动的数据。 默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置,我们必须阻止对元素的默认处理方式。   event.preventDefault(); 
进行放置 - ondrop
调用 preventDefault() 来避免浏览器对数据的默认处理(drop 事件的默认行为是以链接形式打开) 通过 dataTransfer.getData("text/html") 方法获得被拖的数据。该方法将返回在 setData() 方法中设置为相同类型的任何数据。 function drop(e) { e.preventDefault(); } 
浏览器支持
Internet Explorer 9、Firefox、Opera 12、Chrome 以及 Safari 5 支持拖放。 注释:在 Safari 5.1.2 中不支持拖放。 

示例:

Example1:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Document</title><style type="text/css">html,body {margin: 0;padding: 0;}.drag {width: 50px;height: 50px;background: blue;display: inline-block;margin: 10px;color: white;font-size: 20px;text-align: center;line-height: 50px;cursor: move;}</style>
</head><body><div class="drag drag1" draggable="true" ondragstart="drag(event, this)" ondragover="allowDrop(event)" ondrop="drop(event,this)">1</div><div class="drag drag2" draggable="true" ondragstart="drag(event, this)" ondragover="allowDrop(event)" ondrop="drop(event,this)">2</div><div class="drag drag3" draggable="true" ondragstart="drag(event, this)" ondragover="allowDrop(event)" ondrop="drop(event,this)">3</div><script type="text/javascript">var srcEl = null;function drag(e, el) {srcEl = el;e.dataTransfer.setData("text/html", el.innerHTML);}function drop(e, el){e.preventDefault();// e.stopPropagation();if (srcEl != el) {srcEl.innerHTML = el.innerHTML;el.innerHTML = e.dataTransfer.getData("text/html");}}function allowDrop(e) {e.preventDefault();}</script>
</body></html>
Example2:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Document</title><style type="text/css">html,body {margin: 0;padding: 0;}#div1 {width: 300px;height: 300px;border: 1px solid red;}#drag1 {width: 300px;height: 300px;}</style>
</head><body><div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div><img id="drag1" draggable="true" ondragstart="drag(event)"src="https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=175152409,3501278703&fm=27&gp=0.jpg" /><script type="text/javascript">function drag(e) {e.dataTransfer.setData("text/html", e.target.id);}function drop(e) {e.preventDefault();e.stopPropagation();var id = e.dataTransfer.getData('text/html');e.target.appendChild(document.getElementById(id));}function allowDrop(e) {e.preventDefault();}</script>
</body></html>

W3school原文链接:http://www.w3school.com.cn/html5/html_5_draganddrop.asp

本文转载于:猿2048➮https://www.mk2048.com/blog/blog.php?id=ji2aahj&title=HTML5 拖放、交换位置

HTML5 拖放、交换位置相关推荐

  1. html5 drag this,HTML5拖放(drag和drog)

    拖放(drag和drog)是HTML5的标准的组成部分,也是种常见的特性,意义为抓起一个元素放入到另外的一个位置,在HTML5中任何元素都可以被拖放,前题是要相关进行设置. 1.设置元素为可拖放,也就 ...

  2. html5怎么设置drop,HTML5 拖放(Drag 和 Drop)

    拖放(Drag 和 drop)是 HTML5 标准的组成部分. 将 RUNOOB.COM 图标拖动到矩形框中. 拖放 拖放是一种常见的特性,即抓取对象以后拖到另一个位置. 在 HTML5 中,拖放是标 ...

  3. html拖放数据库字段,HTML5 拖放(Drag 和 Drop)

    拖放是一种常见的特性,即抓取对象以后拖到另一个位置. 在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放. #div1 {width:350px;height:70px;padding:10p ...

  4. HTML5 拖放(Drag 和 Drop)简介

    拖放(Drag 和 drop)是 HTML5 标准的组成部分. 拖放 拖放是一种常见的特性,即抓取对象以后拖到另一个位置. 在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放. HTML5 拖 ...

  5. html拖放api之图片相框,html5拖放API简介及应用

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 通常我们在上传文件时,需要使用 这样的上传文件标签.而在html5中,它提供了拖放的接口,以下的内容就是对html5拖放 ...

  6. HTML5拖放(drag and drop)与plupload的懒人上传

    HTML5拖放能够将本地的文件拖放到页面上,plupload又是很好的文件上传插件,而今天就将两者结合,做了个文件拖拽上传的功能. 简述HTML5拖放 拖放是HTML5标准的一部分,任何元素都能够拖放 ...

  7. jQ html5拖放

    HTML5 拖放 draggable=true dragstart 拖放开始的时候触发 drag 拖放过程中一直触发 dragend 拖放结束后触发 ​ dragenter 对于被放置的标签而言 如果 ...

  8. 8086汇编-实验5(微调)-用栈实现数据交换位置

    初始状态: 代码如下: assume cs:code,ds:data,ss:stackdata segmentdw 0123h,1234h,2345h,3456h,4567h,5678h,6789h, ...

  9. html5自动生成图片,HTML5拖放API如何实现自动生成相框功能 HTML5拖放API实现自动生成相框功能代码...

    HTML5拖放API如何实现自动生成相框功能?下面小编给大家分享一下HTML5拖放API实现自动生成相框功能代码,代码很详细,小编觉得挺不错的,有需要的小伙伴们可以来看看. 实现功能: 将桌面图片拖入 ...

最新文章

  1. sort uniq命令
  2. petshop 出现没有为 SQL 缓存通知启用数据库“MSPetShop4”
  3. 如何使自己的不和谐机器人
  4. 安全扫描工具_固件级安全,微软安全工具新增UEFI扫描功能
  5. 七个月自学进微软——我的编程算法学习心得
  6. 如何在Mac上使用时间机器和“聚焦”恢复文件
  7. Linux下源码安装ElasticResearch
  8. 经典傅里叶算法小集合 附完整c代码
  9. 微博这样的软件怎么测试,新浪微博都盘上了,这个测试玩嗨了!
  10. Android 界面设计 简约个人求职简历表格
  11. mand-mobile框架:无法执行 ScrollView 下拉刷新/上拉加载
  12. 前端前端开发工程师_我们庞大的工程师团队会使用此前端开发指南
  13. 英语水平测试项目----总结遇到的问题
  14. 图像质量评价及率失真性能曲线绘制
  15. 工具类APP的推广方式
  16. c语言:已知斐波那契数列定义:f(0) = 0; f(1) = 1;f(n) = f(n-1) + f(n-2);请计算并输出数列的前n(n<=30)项。
  17. C++模板学习--kankan
  18. TOP10 区块链游戏关注榜
  19. 在计算机的应用领域c ai的中文全称是,2010江西省计算机等级考试试题 二级C试题最新考试试题库(完整版)...
  20. 一直以来都犯的错误,使用include_once而不是include

热门文章

  1. ASP.NET Core MVC 之依赖注入 View
  2. socketserver和socket的补充(验证客户端合法性)
  3. python之路_前端基础之Bootstrap 组件
  4. Mac 编译安装 Redis-3.2.3
  5. C# 热敏打印机 Socket 网络链接 打印 图片 (二)
  6. 关于 asp.net 点击确定按钮 获取不到新值问题
  7. 时间复杂度和空间复杂度[数据结构]
  8. HDU1530 最大流问题
  9. java中的方法在哪里_Java中的本机方法是什么,应在哪里使用?
  10. fabric canvas 清空并重置画布