📜  HTML 拖放事件(1)

📅  最后修改于: 2023-12-03 15:31:17.122000             🧑  作者: Mango

HTML 拖放事件

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。

接下来在目标元素上绑定dragoverdrop事件,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事件中将数据从传输容器中取出并添加到目标元素中。