📅  最后修改于: 2023-12-03 15:31:17.122000             🧑  作者: Mango
HTML 拖放事件是一种能够在网页中实现拖放操作的JavaScript API,可用于在页面中实现拖放交互,如拖动文件到指定区域上传等。
要实现拖放操作,首先需要为要拖动的元素添加draggable
属性,并在元素上绑定dragstart
事件,该事件在拖拽开始时触发。
<!-- HTML 代码 -->
<div draggable="true" ondragstart="drag(event)">拖动我</div>
// JavaScript 代码
function drag(event) {
event.dataTransfer.setData('text', event.target.id);
}
dragstart
事件中我们需要调用event.dataTransfer.setData
方法,该方法用于将被拖动的数据放到数据传输容器中,这里我们传入了一个key为text
,value为被拖动的元素的id。
接下来在目标元素上绑定dragover
和drop
事件,dragover
事件用于指示可释放的区域,而drop
事件则在松开鼠标时触发,用于完成数据的转移。
<!-- HTML 代码 -->
<div ondragover="allowDrop(event)" ondrop="drop(event)">拖动到这里</div>
// JavaScript 代码
function allowDrop(event) {
event.preventDefault();
}
function drop(event) {
event.preventDefault();
var data = event.dataTransfer.getData("text");
event.target.appendChild(document.getElementById(data));
}
在drop
事件中,我们通过调用event.dataTransfer.getData
方法获取拖动元素的id,并将其添加到目标元素中。
除了以上介绍的事件,HTML拖放操作还有一些重要的事件:
dragenter
:拖动元素进入可拖放区域时触发,又称为拖入事件;dragleave
:拖动元素离开可拖放区域时触发,又称为拖出事件;dragend
:拖动元素完成拖放操作并放下鼠标时触发。HTML拖放事件提供了一种简单易用的方式,可以在网页中实现拖放交互。要实现拖放操作,需要在源元素的dragstart
事件中将数据放到数据传输容器中,然后在目标元素的dragover
事件中指定放置区域,并在drop
事件中将数据从传输容器中取出并添加到目标元素中。