在网络开发人员需要掌握的所有技术中,看起来最容易造成混淆和潜在问题的是拖拽。

这不是一项新技术,它已存在多年,但许多开发人员仍然执着于基于jQuery的旧方法,以牵连复杂(有时很慢且不准确)的拖放模拟。

现在HTML5包含一个拖放API,您已经有了一个非常简单的方法来实现无拖放拖放。

理解力学
拖放很容易理解。你有一个物体和一个目标。目标是允许用户点击对象并将其拖动到目标,然后您的应用程序需要做出适当的响应。

创建一个网页模板
这很简单,但我们需要有一个地方来放置所有的代码项目。您可以创建的最基本的网页模板是:

<!DOCTYPE html>
< html >
< head >
</ head >
< body >
</ body >
</ html >
定义一个可拖动的对象
你可能期望在这里有一些复杂的类似Java的定义,但实际上它就像在你的body部分的一个元素上设置一个“可拖动”属性一样简单,就像这样:

<div>
< img id = “dragMe” src = “pic.jpg” draggable = “true” >
</ div >
正如你所看到的那样,这部分非常简单。事实上,对于某些浏览器,您甚至不需要为某些元素类型指定属性,但无论如何,仍然是一个好主意。

定义目标
目标是可以将对象拖到的区域。同样,这很简单,你只需要给目标一个CSS ID属性。

<div id = “drop_target” >
×××离开!
</ div >
添加一些CSS
我们应该确保一切都看起来应该看起来。将以下CSS样式信息添加到您的头部部分:

<风格>
#drop_target { border:3 px solid#000 ; 填充:10像素; 身高:100像素; 宽度:100像素;}
#dragMe { height:50 px; width:50 px;}
< / style>
实现JS功能
这一步只是为了确保你的应用程序知道对象的存在,并且它应该与它们交互。如果您需要创建一系列事件侦听器,则可以采取复杂的方法,但您并不需要任何精心处理基本拖放操作的内容。

真的,我们只需要定义两个函数来处理所有的移动,dragObject和dropObject。

<script>
var moved = false ;
函数 dragObject(e) {
e.dataTransfer.effectAllowed = “移动” ;
e.dataTransfer.setData(“obj1”,e.target.id);
返回 false ;
}
function dropObject(e) {
if(moved == true){
return false ;
}
var received = e.dataTransfer.getData(“obj1”);
e.dataTransfer.dropEffect = “move” ;
e.preventDefault();
e.stopPropagation();
e.target.appendChild(document.getElementById(received));
移动= 真 ;
返回 false ;
}
< / script>
例如,有关防止默认值和停止传播的内容只是为了覆盖默认的浏览器行为,例如可能导致它尝试在某处导航或打开图像。已移动的变量可防止在执行操作后执行代码。

修改对象声明和目标声明
如果功能从未被调用,则不会发生任何事情。你只需要像这样改变对象和目标的声明:

<img id = “dragMe” src = “pic.jpg” draggable = “true” ondragstart = “dragObject(event);” >

<div id = “drop_target” ondragover = “event.preventDefault();” ondrop = “dropObject(

转载于:https://blog.51cto.com/13705565/2104481

HTML5 如何实现拖放'N'拖放相关推荐

  1. 【HTML5】网页元素的拖放操作

    拖放介绍 拖放是一种常见的特性,即抓取对象以后拖到另一个位置.虽然在HTML5之前已经可以使用 mousedown,mousemove,mouseup 实现拖放,但是只支持在浏览器内部的拖放,在HTM ...

  2. HTML5中利用JavaScript实现拖放(来回)的案例

    拖放是 HTML5 中非常常见的功能. 注意: 默认情况下,元素是不可拖动的,为了让元素可拖动,需要将 HTML5 的draggable 属性设置为true. 提示: 链接和图片默认是可拖动的,不需要 ...

  3. 在线拖拽html,html5拖曳操作 HTML5实现网页元素的拖放操作

    HTML5之前,要实现网页元素的拖放操作,需要依靠mousedown.mousemove.mouseup等API,通过大量的JS代码来实现:HTML5中引入了直接支持拖放操作的API,大大简化了网页元 ...

  4. HTML5 进阶系列:拖放 API 实现拖放排序

    前言 HTML5 中提供了直接拖放的 API,极大的方便我们实现拖放效果,不需要去写一大堆的 js,只需要通过监听元素的拖放事件就能实现各种拖放功能. 想要拖放某个元素,必须设置该元素的 dragga ...

  5. 【HTML5初探之form标签】解放表单验证、增加文件上传、集成拖放

    导航 [初探HTML5之使用新标签布局]用html5布局我的博客页! [HTML5初探之form标签]解放表单验证.增加文件上传.集成拖放 [HTML5初探之绘制图像(上)]看我canvas元素引领下 ...

  6. html5拖放详解,HTML5拖拽/拖放(drag drop)详解

    H5中拖拽属性: draggable: auto | true | false 拖动事件: - dragstart 在元素开始被拖动时触发 - dragend 在拖动操作完成时触发 - drag 在元 ...

  7. HTML5 拖放(Drag 和 Drop)简介

    拖放(Drag 和 drop)是 HTML5 标准的组成部分. 拖放 拖放是一种常见的特性,即抓取对象以后拖到另一个位置. 在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放. HTML5 拖 ...

  8. html5如何实现拖拽,HTML5 如何实现拖放

    拖放是一种常见的特性,也就是抓取对象以后拖到另一个位置.在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放. 拖放事件 拖放是由拖动与释放两部分组成,拖放事件也分为被拖动元素的相关事件,和容器 ...

  9. html5 泡泡堂,HTML5 拖放 - 彩色泡泡糖的个人空间 - OSCHINA - 中文开源技术交流社区...

    本节我们学习 HTML5 中的拖放,拖放是一种常见的特性,也就是抓取对象以后拖到另一个位置.在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放. 拖放事件 拖放是由拖动与释放两部分组成,拖放事 ...

最新文章

  1. Linux中一切皆文件
  2. ITK:分段线性曲线的数据结构
  3. 设置窗口的光标,设置ToolBar,设置状态栏
  4. springMVC接收数据和响应返回
  5. (转)SpringMVC学习(十)——SpringMVC与前台的json数据交互
  6. 纯js分页代码(简洁实用)
  7. 【GWT系列】实现远程过程调用
  8. 《Java从入门到精通》(第六版)配套资源分享
  9. Android 系统签名打包方法
  10. 百人计划2.6 伽马校正
  11. 计算机视觉/图像处理领域相关研究机构梳理
  12. pageadmin CMS网站建设教程:附属表数据列表调用语法
  13. 钉钉桌面版绑定其他邮箱
  14. 一线互联网大厂面试真题系统收录!轻松拿下offer
  15. 模型动态测试工具 TPT 18更多新特性——HiL测试、需求管理
  16. 达人评测华为MatePadPro2怎么样
  17. 集创北方IPO被终止:曾拟募资60亿 小米华为vivo是股东
  18. Python利用Opencv读取图片
  19. qt获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址
  20. 永辉超市第三季营收222亿:净亏7.8亿 卖金龙鱼股权套现1.7亿

热门文章

  1. spring配置文件import标签中使用${}占位符获得配置文件的属性值
  2. AES加密时抛出java.security.InvalidKeyException:#160;Illegal#160;key#160;size#160;or#160;def...
  3. 免费资源:Typicons-免费图标字体
  4. 用tarball实现liferay自动安装部署15-复制定制后的catalina.sh
  5. 用C#编写ActiveX控件(三) 转载
  6. javascript数据类型和常用内置对象(重要!)
  7. Web自动化之Headless Chrome概览
  8. 通过反射获取子类和父类定义的属性
  9. C++ sizeof 操作符的用法总结
  10. (组合)Binomial Showdown