HTML 拖放(Drag and Drop)(DnD) 是 HTML5 的一项功能。它是一个强大的用户界面概念,用于在鼠标的帮助下复制、重新排序和删除项目。您可以在元素上按住鼠标按钮并将其拖动到另一个位置。如果要将元素放在那里,只需松开鼠标按钮。
如果你想在传统的 HTML4 中实现拖放功能,你必须使用复杂的 JavaScript 编程或其他 JavaScript 框架,如 jQuery 等。
事件 | 描述 |
---|---|
Drag | 每次在拖动对象时移动鼠标时都会触发。 |
Dragstart | 这是一个非常初级的阶段。当用户开始拖动对象时触发。 |
Dragenter | 当用户将他/她的鼠标光标移到目标元素上时触发。 |
Dragover | 当鼠标移到元素上时会触发此事件。 |
Dragleave | 当鼠标离开元素时会触发此事件。 |
Drop | Drop 它在拖动操作结束时触发。 |
Dragend | 当用户释放鼠标按钮完成拖动操作时触发。 |
让我们看一个 HTML 5 拖放功能的例子。
<!DOCTYPE html> <html> <body> <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> <br> <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 图像拖入矩形中:
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 |