html5的drag属性实现拖放

43 篇文章 3 订阅

70. html5的drag属性实现拖放

拖放DragDrop)是很常见的特性。它指的是您抓取某物并拖入不同的位置。

拖放HTML5 标准的组成部分:任何元素都是可拖放的。

下面我们通过一个例子来实现拖放

<div id="drop" ondrop="drop(event)" ondragover="allowDrag(event)"></div>
<div id="drag"  ondragstart="drag(event)" draggable="true"> 可拖放文字 </div>

在上述示例中,我们给拖拽元素 drag 标签添加了 draggable="true" 属性以及 ondragstart 事件处理函数,给目标元素 drop 标签添加了 ondragoverondrop 事件处理函数。

  1. ondragstart 事件处理函数会在拖拽元素开始拖拽时被调用,可以在其中设置传输的数据类型和值,例如:
function drag(e){
  e.dataTransfer.setData("id", e.target.id)
}
  1. ondragover 事件处理函数会在拖拽元素悬停在目标元素上时被调用,可以在其中设置允许拖放的操作类型,例如:
function allowDrag(e){
  e.preventDefault()
}
  1. ondrop 事件处理函数会在拖拽元素在目标元素上松开鼠标时被调用,可以在其中获取传输的数据,例如:
function drop(e) {
  e.preventDefault()
  const data = e.dataTransfer.getData("id")
  e.target.appendChild(document.getElementById(data))
}

需要注意的是,为了防止默认的事件行为(例如在拖拽元素上松开鼠标时跳转到链接地址),我们需要在 ondragoverondrop 事件处理函数中调用 preventDefault 方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端每日三省

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值