`
huoquan
  • 浏览: 27162 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类

前端新技术:HTML5实现网页元素的拖动操作

阅读更多

HTML5之前,要实现网页元素的拖动操作,需要依靠mousedown、mousemove、mouseup等API,通过大量的JS代码来实现;HTML5 中引入了直接支持拖动操作的API,大大简化了网页元素的拖动操作编程难度,并且这些API除了支持浏览器内部元素的拖动外,同时支持浏览器和其它应用程序之间的数据互相拖动。

本文通过一个简单示例,演示HTML5中拖动API的使用方法。

场景:

如下图所示,我们要实现:

  1. 通过拖动将照片从左侧“相册”区域拖拽到右侧“垃圾箱”区域;可以500%提高开发效率的前端UI框架!

  2. 拖拽过程中,“温馨提示”部分要及时提醒,当前正在进行拖动操作;

  1.  

实现方法:

 

如上界面的HTML代码比较简单,如下: 可以500%提高开发效率的前端UI框架!

.代码  收藏代码
  1. <!DOCTYPE HTML>  
  2. <html>  
  3. <head>  
  4.     <title>HTML5实现拖拽操作</title>  
  5.     <meta charset="utf-8"/>  
  6.     <style>  
  7.         .album  
  8.         {  
  9.             border: 3px dashed #ccc;  
  10.             float: left;  
  11.             margin: 10px;  
  12.             min-height: 100px;  
  13.             padding: 10px;  
  14.             width: 220px;  
  15.         }  
  16.     </style>  
  17. </head>  
  18. <body">  
  19.     <div id="info">  
  20.         <h2>温馨提示:可将照片直接拖到垃圾箱中</h2>  
  21.     </div>  
  22.     <div id="album" class="album">  
  23.         <h2>相册</h2>  
  24.         <img draggable="true" id="img1" src="img/bg_01.png"  />  
  25.         <img draggable="true" id="img2" src="img/bg_02.png"  />  
  26.         <img draggable="true" id="img3" src="img/bg_03.png"  />  
  27.     </div>  
  28.     <div id="trash" class="album">  
  29.         <h2>垃圾箱</h2>  
  30.     </div>  
  31.     <br/>  
  32. </body>  
  33. </html>  

 

注意:如果要实现拖动操作,需要在待拖动的元素上增加draggable="true"属性;

接下来,再在onload事件中增加如下JS代码即可,注释比较详尽,就不再单独解释。 可以500%提高开发效率的前端UI框架!

.代码  收藏代码
  1. <script>  
  2.     function init(){  
  3.         var info = document.getElementById("info");  
  4.         //获得被拖动的元素,本示例为相册所在的DIV  
  5.         var src = document.getElementById("album");  
  6.         //开始拖动操作  
  7.         src.ondragstart = function (e) {  
  8.             //获得被拖动的照片ID  
  9.             var dragImgId = e.target.id;  
  10.             //获得被拖动元素  
  11.             var dragImg = document.getElementById(dragImgId);  
  12.             //拖动操作结束  
  13.             dragImg.ondragend = function(e){  
  14.                 //恢复提醒信息  
  15.                 info.innerHTML="<h2>温馨提示:可将照片直接拖到垃圾箱中</h2>";  
  16.             };  
  17.             e.dataTransfer.setData("text",dragImgId);  
  18.         };  
  19.         //拖动过程中  
  20.         src.ondrag = function(e){  
  21.             info.innerHTML="<h2>--照片正在被拖动--</h2>";  
  22.         }  
  23.         //获得拖动的目标元素  
  24.         var target = document.getElementById("trash");  
  25.         //关闭默认处理;  
  26.         target.ondragenter = function(e){  
  27.             e.preventDefault();  
  28.         }  
  29.         target.ondragover = function(e){  
  30.             e.preventDefault();  
  31.         }  
  32.         //有东西拖动到了目标元素  
  33.         target.ondrop = function (e) {  
  34.             var draggedID = e.dataTransfer.getData("text");  
  35.             //获取相册中的DOM对象  
  36.             var oldElem = document.getElementById(draggedID);  
  37.             //从相册DIV中删除该照片的节点  
  38.             oldElem.parentNode.removeChild(oldElem);  
  39.             //将被拖动的照片DOM节点添加到垃圾桶DIV中;  
  40.             target.appendChild(oldElem);  
  41.             info.innerHTML="<h2>温馨提示:可将照片直接拖到垃圾箱中</h2>";  
  42.             e.preventDefault();  
  43.         }  
  44.     }  
  45. </script>  

 

实现效果:

0
0
分享到:
评论

相关推荐

    HTML5及CSS3web前端开发技术习题答案解析.pdf

    HTML5引入了许多全局属性,这些属性可以在任何HTML元素上使用,增强了元素的功能性和灵活性。下面列举了一些重要的全局属性及其功能: - **`accesskey`**:定义一个键盘快捷键,用户可以通过按该快捷键直接访问该...

    HTML5与CSS3web前端开发技术习题答案.pdf

    HTML5新增的全局属性是指可以在任何HTML元素上使用的属性,这些属性增强了元素的功能性和灵活性。具体如下: - **`accesskey`**:定义了元素的键盘快捷键,使用户可以通过特定的键盘按键快速访问该元素。 - **`...

    HTML5+页面元素拖拽事件+拖拽元素进入或从容器中拖出元素

    它详细介绍了如何利用HTML5的新特性,拖放API(Drag and Drop API),让网页元素实现动态交互。内容涵盖基本的拖拽事件如dragstart、dragover、drop等,以及如何处理拖动过程中元素的捕捉、移动、放置等过程。通过...

    通过拖拽的方法自动生成html

    1. **拖拽界面**:这类工具通常有一个大的设计区域,用户可以在这个区域内拖动各种网页元素,如文本框、图像、按钮、表格等。每个元素都有其对应的HTML标签,如`&lt;p&gt;`(段落)、`&lt;img&gt;`(图像)、`&lt;button&gt;`(按钮)...

    HTML5网页前端设计实战课件和源代码.zip

    这个"HTML5网页前端设计实战课件和源代码.zip"压缩包包含了一整套关于HTML5前端设计的学习资源,旨在帮助开发者深入理解并掌握HTML5的相关技术。 首先,HTML5作为超文本标记语言的最新版本,其主要改进包括更丰富的...

    可拖拽的html5人物关系图代码

    7. **用户交互设计**: 优秀的拖拽体验需要考虑用户交互细节,例如适当的反馈(如拖动时的高亮显示)、边界限制(防止节点拖出视口)以及松开鼠标时的确认操作。 8. **性能优化**: 对于大型关系图,性能优化至关重要...

    HTML5拖拽互动修改页面元素颜色特效

    HTML5作为现代网页开发的标准,提供了许多新的特性和功能,其中拖放(Drag and Drop)API就是其中之一。这款“HTML5拖拽互动修改页面元素颜色特效”充分利用了这一特性,为用户提供了直观且有趣的交互体验。 拖放...

    html5前端应用

    8. **拖放功能**:HTML5的拖放API允许用户直接在网页上拖动元素,实现文件上传、内容移动等操作。 9. **Web Components**:这一特性允许开发者创建自定义的可重用的UI组件,封装样式和行为,提高了代码复用性和开发...

    HTML5.zip_html5 拖拽_拖拽上传

    HTML5是现代网页开发的关键技术之一,其引入了许多新的功能和元素,极大地提升了用户体验和开发者的工作效率。在HTML5中,拖拽API(Drag and Drop API)是一个显著的特性,它使得用户可以通过简单的拖放操作在网页上...

    HTML5及CSS3web前端开发技术习题答案.docx

    1. **浏览器兼容性**:HTML5致力于解决不同浏览器间显示不一致的问题,通过引入新的标签和标准,使得网页在各种浏览器上都能正确渲染。 2. **文档结构描述**:HTML5引入了如、、和等语义化标签,使得网页结构更加...

    【JavaScript】canvas实现可拖拽、修改的分段进度条

    本教程将探讨如何利用Canvas和JavaScript技术实现一个可拖拽、可修改的分段进度条,这在各种用户界面设计中非常实用。我们将涉及到前端开发的基础知识,包括HTML、CSS以及JavaScript,同时也会涉及Vue框架的应用。 ...

    网页版天天消消乐HTML5源码

    HTML5是超文本标记语言的第五次重大修订,它在传统的HTML基础上增加了许多新的元素、API接口以及对多媒体的支持,使得网页应用的开发更加便捷且功能更加强大。 【描述】中的“网页版天天消消乐”是一款流行的游戏,...

    基于HTML5的网页设计与实现.pdf

    7. **拖拽释放API(Drag and Drop API)**:使得在网页上实现拖放操作变得简单,增加了交互性。 在基于HTML5的网页设计与实现过程中,设计师需要考虑以下步骤: 1. **效果图设计**:根据具体需求分析网页布局,...

    前端象棋html5

    在本项目中,“前端象棋html5”是一个完全在浏览器前端实现的中国象棋游戏,它利用了HTML5这一现代Web技术,不依赖任何外部库,完全由JavaScript编写。这样的设计使得游戏轻量化且易于部署,用户只需一个支持HTML5的...

    HTML中可拖动改变框架大小的页面范例

    这种技术能够使用户通过鼠标拖动来调整网页元素的尺寸,提升用户体验,尤其是在多框架布局中,用户可以根据需要自由调整各部分的显示面积。 在HTML中,框架(Frames)是通过`&lt;frameset&gt;`、`&lt;frame&gt;`等标签实现的,...

    html+css+js实现的8款图片展示设计,可用于制作网页版相册

    在网页设计领域,HTML、CSS和JavaScript是构建交互式用户界面不可或缺的三大核心技术。本资源包含8种不同的图片展示...同时,深入理解这些示例的代码,也能提升对前端技术的掌握,为开发高质量的网页应用打下坚实基础。

    情人节程序员用HTML网页表白【浪漫的烟花3D相册】 HTML5七夕情人节表白网页源码 HTML+CSS+JavaScript

    - **AJAX请求**:实现异步数据交换,更新网页的部分内容而无需刷新整个页面。 - **框架与库**:使用如jQuery、React、Vue等前端框架或库来简化开发流程。 #### 示例代码分析: ```javascript // 示例 JavaScript ...

    web前端-基于HTML5的WebGIS研究.pdf

    * 新的多媒体元素:HTML5 中引入了新的多媒体元素,如 video 和 audio,这些元素可以使 Web 应用程序更加丰富和多样化。 * 本地存储:HTML5 中引入了本地存储机制,可以使 Web 应用程序在客户端存储数据,从而提高...

    HTML5 实现本地图片裁剪

    HTML5 是一种强大的 web 开发技术,它引入了许多新的功能和元素,极大地提升了网页的交互性和用户体验。在“HTML5 实现本地图片裁剪”这个主题中,我们将深入探讨如何利用 HTML5 的 canvas 元素和 File API 来实现在...

    拼图将碎片拼凑成一个完整画面HTML5源码

    【标题】:“拼图将碎片拼凑成一个完整画面HTML5源码”指的是一个使用HTML5技术实现的在线拼图游戏。在这个项目中,开发者利用HTML5的Canvas元素和JavaScript编程来创建一个互动的拼图游戏,玩家可以将打乱的图片...

Global site tag (gtag.js) - Google Analytics