HTML5- 拖放操作

8. 拖放操作

8.1. 网页内元素拖放

  • 拖放是 HTML5 中非常常见的功能
  • 我们可以通过在元素上添加draggable="true"属性实现元素允许被拖拽

提示:链接和图片默认是可拖动的,不需要 draggable 属性。

  • ondrag 事件在元素或者选取的文本被拖动时触发。
  • 在拖放的过程中会触发以下事件:
    • 在拖动目标上触发事件 (源元素):
      • ondragstart - 用户开始拖动元素时触发
      • ondrag - 元素正在拖动时触发
      • ondragend - 用户完成元素拖动后触发
    • 释放目标时触发的事件(目标元素):
      • ondragenter - 当被鼠标拖动的对象进入其容器范围内时触发此事件
      • ondragover - 当某被拖动的对象在另一对象容器范围内拖动时触发此事件
      • ondragleave - 当被鼠标拖动的对象离开其容器范围内时触发此事件
      • ondrop - 在一个拖动过程中,释放鼠标键时触发此事件

注意: 在拖动元素时,每隔 350 毫秒会触发 ondrag 事件。

8.2. 拖拽删除效果

8.3. 桌面文件拖拽至网页

// 找到目标位置框框
var target = document.querySelector('#target');
var fileList = document.querySelector('#result');
// 注册拖拽进入
target.addEventListener('dragenter', function() {
   
    this.classList.add('actived');
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值