以下文章提供了 HTML 中拖放的概述。拖放是最新的功能,因其方便的功能模式而在网页中手动提供输入而闻名。拖放方法可以描述为用户从源字段的项目列表中选择特定数据/选项,将其拖放到目标字段中的过程。它是使用文档对象模型以及来自 HTML 网页的多个鼠标事件来实现的。此功能中使用的各种事件有:drag、dragstart、dragleave、dragenter、dragover、drop、dragend 和drag exit。
拖放事件
最新的拖放(dnd)功能中包含多个事件;下面我们一一看看:
Sr. No | Events | Details Description |
1 | Drag | To drag entity(element or text) when the mouse is moved with the element to be dragged. |
2 | Dragstart | The very first step in drag and drop is dragstart. It gets executed when the user is going to start with dragging the object to the required location. |
3 | Dragenter | Dragenter event is used when the mouse is getting hover on the target element. |
4 | Dragleave | This event is used when the user releases a mouse from an element. |
5 | Dragover | This event occurs when a mouse is used to over an element. |
6 | Drop | This event is used at the end of the drag and drop process for drop element operation. |
7 | Dragend | This is one of the most important event in this process for releasing the mouse button from the element to complete the drag procedure. |
8 | Dragexit | This event status that the element is no longer in the drag process of urgent target selection of element. |
让我们看看一些将要进行拖放操作的数据属性:
- dataTransfer.dropEffect [ = value ]: 该属性用于显示当前正在进行哪个操作。可以将其设置为替换已选择的操作。其中包含的值例如副本、链接、无或移动。
- dataTransfer.effectAllowed [ = value ]: 任何允许的操作都会通过该属性返回。还可以设置更改已选择的操作。
- dataTransfer.files:该数据属性用于获取要拖动的文件的fileList。
- dataTransfer.addElement(element): 用于将已经存在的元素插入到可用于渲染拖动反馈的其他元素列表中。
- dataTransfer.setDragImage(element, x, y): 此属性与上面的有点相同,用于更新拖动反馈并帮助更改已存在的反馈
- dataTransfer.clearData ( [ format ] ): 它帮助用户从已经定义的格式中删除数据。如果用户省略参数,IT 将删除所有数据。
- dataTransfer.setData(format, data): 这是用于添加指定数据的流行属性之一。
- data = dataTransfer.getData(format): 拖拽操作中该属性用于提取指定数据。如果没有与之相同的数据,则返回空字符串。
HTML 中拖放的语法
以下是定义拖放语法的几个步骤:
选择要拖动的对象:为其设置属性 true。
<element draggable="true"></element>
开始拖动对象:
function dragStart(ev){}
放下对象:
function dragDrop(ev){}
HTML 中的拖放示例
以下示例将展示拖放操作在 HTML 中的具体执行方式。
示例#1
代码:
<title>Drag and Drop Demo</title> <script> function allowDrop(ev) { ev.preventDefault(); } function dragStart(ev) { ev.dataTransfer.setData("text", ev.target.id); } function dragDrop(ev) { ev.preventDefault(); var data = ev.dataTransfer.getData("text"); ev.target.appendChild(document.getElementById(data)); } </script> <style> #box { margin: auto; width: 30%; width: 21%; height:150px; border: 2px solid blue; padding: 2px; } #square1, #square2, #square3 { float: left; margin: 5px; padding: 10px; } #square1 { width: 30px; height: 30px; background-color: #BEA7CC; } #square2 { width: 60px; height: 60px; background-color: #B5D5F5; } #square3 { width: 90px; height: 90px; background-color:#F5B5C5 ; } h2 { font-size:20px; font-weight:bold; text-align:center; } </style> <h2 id="HTML-DRAG-AND-DROP-DEMO">HTML DRAG AND DROP DEMO</h2> <div id="box"> <div id="square1" draggable="true" ondragstart="dragStart(event)"></div> <div id="square2" draggable="true" ondragstart="dragStart(event)"></div> <div id="square3" ondrop="dragDrop(event)" ondragover="allowDrop(event)"></div> </div>
输出:
拖放之前,选项输出将如下所示:
执行拖放操作后,输出如下:
示例#2
这里我们将看到另一个示例,其中我们将图像从一个位置移动到另一个指定位置,如下代码所示。
代码:
<script> function allowDrop(ev) { ev.preventDefault(); } function dragStart(ev) { ev.dataTransfer.setData("text", ev.target.id); } function dragDrop(ev) { ev.preventDefault(); var data = ev.dataTransfer.getData("text"); ev.target.appendChild(document.getElementById(data)); } </script> <style> .divfirst { width: 250px; height: 150px; padding: 10px; border: 1px solid black; background-color: #F5F5F5; } p { font-size:20px; font-weight:bold; } </style> <p>Image Drag and Drop Demo</p> <div class="divfirst" ondrop="dragDrop(event)" ondragover="allowDrop(event)"> <img src="/static/imghwm/default1.png" data-src="Jerry.jpeg" class="lazy" id="drag1" draggable="true" ondragstart="dragStart(event)" style="max-width:90%" style="max-width:90%" alt="在 HTML 中拖放" > </div> <br> <div class="divfirst" ondrop="dragDrop(event)" ondragover="allowDrop(event)"></div>
输出:
拖放操作之前,输出为:
拖放操作完成后,将如下所示:
示例 #3
在此示例中,我们将了解如何将文件拖放到指定位置:
代码:
<div id="filedemo" style="min-height: 150px; border: 1px solid black;" ondragenter="document.getElementById('output').textContent = ''; event.stopPropagation(); event.preventDefault();" ondragover="event.stopPropagation(); event.preventDefault();" ondrop="event.stopPropagation(); event.preventDefault(); dodrop(event);"> DROP FILES HERE... </div> <script> function dodrop(event) { var dt = event.dataTransfer; var files = dt.files; for (var i = 0; i < files.length; i++) { output(" File " + i + ":\n(" + (typeof files[i]) + ") : <" + files[i] + " > " + files[i].name + " " ); } } function output(text) { document.getElementById("filedemo").textContent += text; } </script>
输出:
结论
HTML 拖放是最重要的用户界面实体之一,可用于复制、删除或记录等不同目的。它适用于不同的事件和属性,如上所述。当您拾取某个对象并将其放在指定位置时,它会执行该操作。
以上是在 HTML 中拖放的详细内容。更多信息请关注PHP中文网其他相关文章!

HTML、CSS和JavaScript是构建现代网页的核心技术:1.HTML定义网页结构,2.CSS负责网页外观,3.JavaScript提供网页动态和交互性,它们共同作用,打造出用户体验良好的网站。

HTML的功能是定义网页的结构和内容,其目的在于提供一种标准化的方式来展示信息。1)HTML通过标签和属性组织网页的各个部分,如标题和段落。2)它支持内容与表现分离,提升维护效率。3)HTML具有可扩展性,允许自定义标签增强SEO。

HTML的未来趋势是语义化和Web组件,CSS的未来趋势是CSS-in-JS和CSSHoudini,JavaScript的未来趋势是WebAssembly和Serverless。1.HTML的语义化提高可访问性和SEO效果,Web组件提升开发效率但需注意浏览器兼容性。2.CSS-in-JS增强样式管理灵活性但可能增大文件体积,CSSHoudini允许直接操作CSS渲染。3.WebAssembly优化浏览器应用性能但学习曲线陡,Serverless简化开发但需优化冷启动问题。

HTML、CSS和JavaScript在Web开发中的作用分别是:1.HTML定义网页结构,2.CSS控制网页样式,3.JavaScript添加动态行为。它们共同构建了现代网站的框架、美观和交互性。

HTML的未来充满了无限可能。1)新功能和标准将包括更多的语义化标签和WebComponents的普及。2)网页设计趋势将继续向响应式和无障碍设计发展。3)性能优化将通过响应式图片加载和延迟加载技术提升用户体验。

HTML、CSS和JavaScript在网页开发中的角色分别是:HTML负责内容结构,CSS负责样式,JavaScript负责动态行为。1.HTML通过标签定义网页结构和内容,确保语义化。2.CSS通过选择器和属性控制网页样式,使其美观易读。3.JavaScript通过脚本控制网页行为,实现动态和交互功能。

HTMLISNOTAPROGRAMMENGUAGE; ITISAMARKUMARKUPLAGUAGE.1)htmlStructures andFormatSwebContentusingtags.2)itworkswithcsssforstylingandjavascript for Interactivity,增强WebevebDevelopment。

HTML是构建网页结构的基石。1.HTML定义内容结构和语义,使用、、等标签。2.提供语义化标记,如、、等,提升SEO效果。3.通过标签实现用户交互,需注意表单验证。4.使用、等高级元素结合JavaScript实现动态效果。5.常见错误包括标签未闭合和属性值未加引号,需使用验证工具。6.优化策略包括减少HTTP请求、压缩HTML、使用语义化标签等。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

记事本++7.3.1
好用且免费的代码编辑器

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。