拖拽drag_html5的拖放(drag和drop)

这篇博客探讨了如何使用HTML5的原生拖放API实现拖拽功能,并介绍了在Vue框架中如何集成这一特性。通过设置`draggable`属性和事件监听器,可以实现元素的拖放操作。
摘要由CSDN通过智能技术生成

8184108520fbaad876d69a473b46566e.png
<p>请把 W3School 的图片拖放到矩形中:</p>

<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<br />
<img id="drag1" src="/i/eg_dragdrop_w3school.gif" draggable="true" ondragstart="drag(event)" />

原生的写法:

draggable="true" οndragstart="drag(event)" 必须写到要拖拽的元素上面

οndrοp="drop(event)" οndragοver="allowDrop(event)" 拖到目的位置

<script type="text/javascript">
function allowDrop(ev)
{
ev.preventDefault();
}

function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}

function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
</script>

vue中写法:

<span draggable="true" @dragstart="dragstart(xxx)" ></span>       要拖拽的元素
 
<router-view @dragover.native="dragover($event)" @drop.native="drop($event)" /> 目标元素

路由引用的页面点击不会响应,必须使用native

js:
    drop(e) {
       //拖动完之后事件 (鼠标松开)
    },
    dragover(e) {
      e.preventDefault();  //阻止浏览器的默认行为
    },
    dragstart(e) {
      console.log(e);
      //开始拖动事件
    },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值