HTML5之前,要实现网页元素的拖动操作,需要依靠mousedown、mousemove、mouseup等API,通过大量的JS代码来实现;HTML5 中引入了直接支持拖动操作的API,大大简化了网页元素的拖动操作编程难度,并且这些API除了支持浏览器内部元素的拖动外,同时支持浏览器和其它应用程序之间的数据互相拖动。
本文通过一个简单示例,演示HTML5中拖动API的使用方法。
场景:
如下图所示,我们要实现:
通过拖动将照片从左侧“相册”区域拖拽到右侧“垃圾箱”区域;可以500%提高开发效率的前端UI框架!
拖拽过程中,“温馨提示”部分要及时提醒,当前正在进行拖动操作;
实现方法:
如上界面的HTML代码比较简单,如下: 可以500%提高开发效率的前端UI框架!
- <!DOCTYPE HTML>
- <html>
- <head>
- <title>HTML5实现拖拽操作</title>
- <meta charset="utf-8"/>
- <style>
- .album
- {
- border: 3px dashed #ccc;
- float: left;
- margin: 10px;
- min-height: 100px;
- padding: 10px;
- width: 220px;
- }
- </style>
- </head>
- <body">
- <div id="info">
- <h2>温馨提示:可将照片直接拖到垃圾箱中</h2>
- </div>
- <div id="album" class="album">
- <h2>相册</h2>
- <img draggable="true" id="img1" src="img/bg_01.png" />
- <img draggable="true" id="img2" src="img/bg_02.png" />
- <img draggable="true" id="img3" src="img/bg_03.png" />
- </div>
- <div id="trash" class="album">
- <h2>垃圾箱</h2>
- </div>
- <br/>
- </body>
- </html>
注意:如果要实现拖动操作,需要在待拖动的元素上增加draggable="true"属性;
接下来,再在onload事件中增加如下JS代码即可,注释比较详尽,就不再单独解释。 可以500%提高开发效率的前端UI框架!
- <script>
- function init(){
- var info = document.getElementById("info");
- //获得被拖动的元素,本示例为相册所在的DIV
- var src = document.getElementById("album");
- //开始拖动操作
- src.ondragstart = function (e) {
- //获得被拖动的照片ID
- var dragImgId = e.target.id;
- //获得被拖动元素
- var dragImg = document.getElementById(dragImgId);
- //拖动操作结束
- dragImg.ondragend = function(e){
- //恢复提醒信息
- info.innerHTML="<h2>温馨提示:可将照片直接拖到垃圾箱中</h2>";
- };
- e.dataTransfer.setData("text",dragImgId);
- };
- //拖动过程中
- src.ondrag = function(e){
- info.innerHTML="<h2>--照片正在被拖动--</h2>";
- }
- //获得拖动的目标元素
- var target = document.getElementById("trash");
- //关闭默认处理;
- target.ondragenter = function(e){
- e.preventDefault();
- }
- target.ondragover = function(e){
- e.preventDefault();
- }
- //有东西拖动到了目标元素
- target.ondrop = function (e) {
- var draggedID = e.dataTransfer.getData("text");
- //获取相册中的DOM对象
- var oldElem = document.getElementById(draggedID);
- //从相册DIV中删除该照片的节点
- oldElem.parentNode.removeChild(oldElem);
- //将被拖动的照片DOM节点添加到垃圾桶DIV中;
- target.appendChild(oldElem);
- info.innerHTML="<h2>温馨提示:可将照片直接拖到垃圾箱中</h2>";
- e.preventDefault();
- }
- }
- </script>
实现效果:
相关推荐
HTML5引入了许多全局属性,这些属性可以在任何HTML元素上使用,增强了元素的功能性和灵活性。下面列举了一些重要的全局属性及其功能: - **`accesskey`**:定义一个键盘快捷键,用户可以通过按该快捷键直接访问该...
HTML5新增的全局属性是指可以在任何HTML元素上使用的属性,这些属性增强了元素的功能性和灵活性。具体如下: - **`accesskey`**:定义了元素的键盘快捷键,使用户可以通过特定的键盘按键快速访问该元素。 - **`...
它详细介绍了如何利用HTML5的新特性,拖放API(Drag and Drop API),让网页元素实现动态交互。内容涵盖基本的拖拽事件如dragstart、dragover、drop等,以及如何处理拖动过程中元素的捕捉、移动、放置等过程。通过...
1. **拖拽界面**:这类工具通常有一个大的设计区域,用户可以在这个区域内拖动各种网页元素,如文本框、图像、按钮、表格等。每个元素都有其对应的HTML标签,如`<p>`(段落)、`<img>`(图像)、`<button>`(按钮)...
这个"HTML5网页前端设计实战课件和源代码.zip"压缩包包含了一整套关于HTML5前端设计的学习资源,旨在帮助开发者深入理解并掌握HTML5的相关技术。 首先,HTML5作为超文本标记语言的最新版本,其主要改进包括更丰富的...
7. **用户交互设计**: 优秀的拖拽体验需要考虑用户交互细节,例如适当的反馈(如拖动时的高亮显示)、边界限制(防止节点拖出视口)以及松开鼠标时的确认操作。 8. **性能优化**: 对于大型关系图,性能优化至关重要...
HTML5作为现代网页开发的标准,提供了许多新的特性和功能,其中拖放(Drag and Drop)API就是其中之一。这款“HTML5拖拽互动修改页面元素颜色特效”充分利用了这一特性,为用户提供了直观且有趣的交互体验。 拖放...
8. **拖放功能**:HTML5的拖放API允许用户直接在网页上拖动元素,实现文件上传、内容移动等操作。 9. **Web Components**:这一特性允许开发者创建自定义的可重用的UI组件,封装样式和行为,提高了代码复用性和开发...
HTML5是现代网页开发的关键技术之一,其引入了许多新的功能和元素,极大地提升了用户体验和开发者的工作效率。在HTML5中,拖拽API(Drag and Drop API)是一个显著的特性,它使得用户可以通过简单的拖放操作在网页上...
1. **浏览器兼容性**:HTML5致力于解决不同浏览器间显示不一致的问题,通过引入新的标签和标准,使得网页在各种浏览器上都能正确渲染。 2. **文档结构描述**:HTML5引入了如、、和等语义化标签,使得网页结构更加...
本教程将探讨如何利用Canvas和JavaScript技术实现一个可拖拽、可修改的分段进度条,这在各种用户界面设计中非常实用。我们将涉及到前端开发的基础知识,包括HTML、CSS以及JavaScript,同时也会涉及Vue框架的应用。 ...
HTML5是超文本标记语言的第五次重大修订,它在传统的HTML基础上增加了许多新的元素、API接口以及对多媒体的支持,使得网页应用的开发更加便捷且功能更加强大。 【描述】中的“网页版天天消消乐”是一款流行的游戏,...
7. **拖拽释放API(Drag and Drop API)**:使得在网页上实现拖放操作变得简单,增加了交互性。 在基于HTML5的网页设计与实现过程中,设计师需要考虑以下步骤: 1. **效果图设计**:根据具体需求分析网页布局,...
在本项目中,“前端象棋html5”是一个完全在浏览器前端实现的中国象棋游戏,它利用了HTML5这一现代Web技术,不依赖任何外部库,完全由JavaScript编写。这样的设计使得游戏轻量化且易于部署,用户只需一个支持HTML5的...
这种技术能够使用户通过鼠标拖动来调整网页元素的尺寸,提升用户体验,尤其是在多框架布局中,用户可以根据需要自由调整各部分的显示面积。 在HTML中,框架(Frames)是通过`<frameset>`、`<frame>`等标签实现的,...
在网页设计领域,HTML、CSS和JavaScript是构建交互式用户界面不可或缺的三大核心技术。本资源包含8种不同的图片展示...同时,深入理解这些示例的代码,也能提升对前端技术的掌握,为开发高质量的网页应用打下坚实基础。
- **AJAX请求**:实现异步数据交换,更新网页的部分内容而无需刷新整个页面。 - **框架与库**:使用如jQuery、React、Vue等前端框架或库来简化开发流程。 #### 示例代码分析: ```javascript // 示例 JavaScript ...
* 新的多媒体元素:HTML5 中引入了新的多媒体元素,如 video 和 audio,这些元素可以使 Web 应用程序更加丰富和多样化。 * 本地存储:HTML5 中引入了本地存储机制,可以使 Web 应用程序在客户端存储数据,从而提高...
HTML5 是一种强大的 web 开发技术,它引入了许多新的功能和元素,极大地提升了网页的交互性和用户体验。在“HTML5 实现本地图片裁剪”这个主题中,我们将深入探讨如何利用 HTML5 的 canvas 元素和 File API 来实现在...
【标题】:“拼图将碎片拼凑成一个完整画面HTML5源码”指的是一个使用HTML5技术实现的在线拼图游戏。在这个项目中,开发者利用HTML5的Canvas元素和JavaScript编程来创建一个互动的拼图游戏,玩家可以将打乱的图片...