添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

HTML 拖放(Drag and Drop)(DnD) 是 HTML5 的一项功能。它是一个强大的用户界面概念, 用于在鼠标的帮助下复制、重新排序和删除项目 。您可以在元素上按住鼠标按钮并将其拖动到另一个位置。如果要将元素放在那里,只需松开鼠标按钮。

如果你想在传统的 HTML4 中实现拖放功能,你必须使用复杂的 JavaScript 编程或其他 JavaScript 框架,如 jQuery 等。

拖放功能的事件

事件 描述
Drag 每次在拖动对象时移动鼠标时都会触发。
Dragstart 这是一个非常初级的阶段。当用户开始拖动对象时触发。
Dragenter 当用户将他/她的鼠标光标移到目标元素上时触发。
Dragover 当鼠标移到元素上时会触发此事件。
Dragleave 当鼠标离开元素时会触发此事件。
Drop Drop 它在拖动操作结束时触发。
Dragend 当用户释放鼠标按钮完成拖动操作时触发。

HTML5 拖放示例

让我们看一个 HTML 5 拖放功能的例子。

要理解这个例子,你必须具备 JavaScript 的知识。

<!DOCTYPE html>  
<script>  
function allowDrop(ev) {ev.preventDefault();}  
function drag(ev) {ev.dataTransfer.setData("text/html", ev.target.id);}  
function drop(ev) {  
ev.preventDefault();  
var data = ev.dataTransfer.getData("text/html");  
ev.target.appendChild(document.getElementById(data));  
</script>
<p>将 rocschool 图像拖入矩形中:</p>
<div id="div1" style="width:350px;height:100px;padding:10px;border:1px solid #aaaaaa;" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<img id="drag1" src="/public/static/rocschool/img/logo.png" alt="rocschool image" draggable="true" ondragstart="drag(event)"/>
</body>  
</html>

在上面的例子中,我们在 div元素上使用了ondrop 和 ondragover 事件,在 img标签上使用了 ondragstart 事件。


输出:

将 javatpoint 图像拖入矩形中:


注意:在拖动操作期间不会触发 MouseEvent。

拖放操作期间的阶段

1) 使元素可拖动

如果要使元素可拖动,请将元素上的draggable 属性设置为“true”。例如:

<img draggable = "true">

2)拖动什么:

使用 ondragstart 和 setData() 方法。

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

3) 去哪里:

使用 ondragover 事件。

4)做滴:

使用 ondrop 事件。


支持浏览器

元素 Chrome IE Firefox Safari Opera
drag and drop feature Yes Yes Yes Yes Yes
111111111