html5 拖放

H5中拖拽属性

draggable: auto| true| false

拖动事件

 dragstart  在元素开始被拖动时触发
 dragend    在拖动操作完成时触发
 drag  在元素被拖动时触发

释放区事件

  dragenter 被拖动元素进入到释放区所占据得屏幕空间时触发
  dragover   当被拖动元素在释放区内移动时触发
  dragleave  当被拖动元素没有放下就离开释放区时触发
  drop   当被拖动元素在释放区里放下时触发

数据通信

  存数据    e.dataTransfer.setData('Text', data);
  text/html:文本文字格式
  text/plain:HTML代码格式
  text/xml:XML字符格式
  text/url-list:URL格式列表
  
  拿数据    e.dataTransfer.getData('Text');
  清除数据  e.dataTransfer.clearData();

dataTransfer

分为三模式:
  • Read/write mode
    读/写模式,在dragstart事件中使用,可以添加新数据到drag data store中。
  • Read-only mode
  只读模式,在drop事件中使用,可以读取被拖拽数据,不可添加新数据.
  • Protected mode
   保护模式,在所有其他的事件中使用,数据的列表可以被枚举,但是数据本身不可用且不能添加新数据.

dropEffect属性只有搭配effectAllowed属性才有用。effectAllowed属性表示允许拖放元素的哪种dropEffect,effectAllowed属性可能的值如下。

  • uninitialized:没有该被拖动元素放置行为。
  • none:被拖动的元素不能有任何行为。
  • copy:只允许值为“copy”的dropEffect。
  • link:只允许值为“link”的dropEffect。
  • move:只允许值为“move”的dropEffect。
  • copyLink:允许值为“copy”和“link”的dropEffect。
  • copyMove:允许值为“copy”和”link”的dropEffect。
  • linkMove:允许职位“link”和”move”的dropEffect。
  • all:允许任意dropEffect。

必须在ondraggstart事件处理程序中设置effectAllowed属性。

下次用react封装一个简单的拖放组件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的HTML 5拖放实例: ```html <!DOCTYPE html> <html> <head> <title>HTML 5拖放实例</title> <style> #div1 { width: 200px; height: 200px; padding: 10px; border: 1px solid black; } </style> <script> function allowDrop(event) { event.preventDefault(); } function drag(event) { event.dataTransfer.setData("text", event.target.id); } function drop(event) { event.preventDefault(); var data = event.dataTransfer.getData("text"); event.target.appendChild(document.getElementById(data)); } </script> </head> <body> <h2>拖动这个文本框到方框中</h2> <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div> <br> <input type="text" id="drag1" draggable="true" ondragstart="drag(event)"> </body> </html> ``` 在这个实例中,我们创建了一个文本框和一个方框,文本框可以被拖动到方框中。实现这个功能的关键是使用了HTML 5的拖放事件,包括`ondragstart`、`ondragover`和`ondrop`事件。 当我们开始拖动文本框时,会触发`ondragstart`事件,这个事件中我们使用了`event.dataTransfer.setData()`方法设置了数据类型和数据内容。在这个例子中,我们将数据类型设为"text",数据内容为文本框的id。 当我们将文本框拖动到方框上时,会触发`ondragover`事件。在这个事件中,我们使用了`event.preventDefault()`方法来防止默认的操作(例如在浏览器中打开被拖动的元素)发生。 当我们在方框中放下文本框时,会触发`ondrop`事件。在这个事件中,我们使用了`event.preventDefault()`方法来防止默认的操作(例如在浏览器中打开被拖动的元素)发生。然后,我们使用`event.dataTransfer.getData()`方法获取了被拖动元素的id,并将其添加到方框中。 这个实例只是一个简单的演示,但是HTML 5的拖放功能非常强大,可以在实际的应用中发挥很大的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值