首页 前端知识 前端必知必会-HTML Drag and Drop API

前端必知必会-HTML Drag and Drop API

2024-08-12 10:08:30 前端知识 前端哥 737 309 我要收藏

文章目录

  • HTML Drag and Drop API
  • 拖放Drag and Drop
  • HTML 拖放示例
  • 使元素可拖动
  • 拖动内容 - ondragstart 和 setData()
  • 放置位置 - ondragover
  • 执行 Drop - ondrop
  • 总结


HTML Drag and Drop API

在 HTML 中,任何元素都可以拖放。

拖放Drag and Drop

拖放是一项非常常见的功能。就是您“抓取”一个对象并将其拖到其他位置。

HTML 拖放示例

以下示例是一个简单的拖放示例:

示例

<!DOCTYPE HTML>
<html>
<head>
<script>
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>
</head>
<body>

<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>

<img id="drag1" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">

</body>
</html>

这似乎很复杂,但让我们来看看拖放事件的各个部分。

使元素可拖动

首先:要使元素可拖动,请将 draggable 属性设置为 true:

<img draggable="true">

拖动内容 - ondragstart 和 setData()

然后,指定拖动元素时应发生的情况。

在上面的示例中,ondragstart 属性调用函数 drag(event),该函数指定要拖动的数据。

dataTransfer.setData() 方法设置拖动数据的数据类型和值:

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

在本例中,数据类型为“text”,值是可拖动元素的 id(“drag1”)。

放置位置 - ondragover

ondragover 事件指定可以放置拖动数据的位置。

默认情况下,数据/元素不能放置在其他元素中。要允许放置,我们必须阻止元素的默认处理。

这是通过调用 ondragover 事件的 event.preventDefault() 方法来实现的:

event.preventDefault()

执行 Drop - ondrop

当拖动的数据被放下时,会发生 drop 事件。

在上面的例子中,ondrop 属性调用一个函数 drop(event):

function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
}

代码解释:

调用 PreventDefault() 以防止浏览器默认处理数据(默认在放下时打开链接)
使用 dataTransfer.getData() 方法获取拖动的数据。此方法将返回在 setData() 方法中设置为相同类型的任何数据
拖动的数据是拖动元素的 ID(“drag1”)
将拖动元素附加到 drop 元素中


总结

本文介绍了的html Drag and Drop API使用,如有问题欢迎私信和评论

转载请注明出处或者链接地址:https://www.qianduange.cn//article/15346.html
标签
评论
发布的文章

jQuery3 学习手册(三)

2024-08-18 22:08:04

vue和jQuery有什么区别

2024-04-29 11:04:47

推荐项目:jQuery.Gantt

2024-08-18 22:08:37

jQuery UI 秘籍(一)

2024-08-18 22:08:15

jQuery详解

2024-04-29 11:04:38

echarts饼图点击图例问题

2024-08-18 22:08:48

echarts天气折线图

2024-08-18 22:08:46

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!