HTML 5 拖放简介

  拖放(Drag 和 drop)是 HTML5 标准的组成部分。

拖放

拖放是一种常见的特性,即抓取对象以后拖到另一个位置。

在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放。

浏览器支持

Internet Explorer 9、Firefox、Opera 12、Chrome 以及 Safari 5 支持拖放。

注释:在 Safari 5.1.2 中不支持拖放。

HTML5 拖放实例

下面的例子是一个简单的拖放实例:

实例

<!DOCTYPE HTML>
<html>
<head>
<script type="text/javascript">
function allowDrop(ev)
{
ev.preventDefault();
}

function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}

function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>

<div id="div1" ondrop="drop(event)"
ondragover="allowDrop(event)"></div>
<img id="drag1" src="img_logo.gif" draggable="true"
ondragstart="drag(event)" width="336" height="69" />

</body>
</html>

亲自试一试

它看上去也许有些复杂,不过我们可以分别研究拖放事件的不同部分。

设置元素为可拖放

首先,为了使元素可拖动,把 draggable 属性设置为 true :

<img draggable="true" />

拖动什么 - ondragstart 和 setData()

然后,规定当元素被拖动时,会发生什么。

在上面的例子中,ondragstart 属性调用了一个函数,drag(event),它规定了被拖动的数据。

dataTransfer.setData() 方法设置被拖数据的数据类型和值:

function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}

在这个例子中,数据类型是 "Text",值是可拖动元素的 id ("drag1")。

放到何处 - ondragover

ondragover 事件规定在何处放置被拖动的数据。

默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置,我们必须阻止对元素的默认处理方式。

这要通过调用 ondragover 事件的 event.preventDefault() 方法:

event.preventDefault()

进行放置 - ondrop

当放置被拖数据时,会发生 drop 事件。

在上面的例子中,ondrop 属性调用了一个函数,drop(event):

function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}

代码解释:

  • 调用 preventDefault() 来避免浏览器对数据的默认处理(drop 事件的默认行为是以链接形式打开)
  • 通过 dataTransfer.getData("Text") 方法获得被拖的数据。该方法将返回在 setData() 方法中设置为相同类型的任何数据。
  • 被拖数据是被拖元素的 id ("drag1")
  • 把被拖元素追加到放置元素(目标元素)中

 

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据
, 方法
, 事件
, function
, 拖放
, 元素
, preventdefault
, 拖动一个HTML元素
, 拖放事件
, 可拖放图片剪裁
, preventDefault()
event.preventDefault
html5 拖放、html5拖放详解、html5 div 互换拖放、html5 拖放式设计、html5 div 自由拖放,以便于您获取更多的相关知识。

时间: 2024-09-29 20:38:02

HTML 5 拖放简介的相关文章

html5全局属性

全局属性:对于任何一个标签都是可以使用的属性. 一.data-* 在html5之前需要在html标签上添加自定义属性来存储和操作数据,可能是会写<form role="xxx">,但这是种非常不规范的方式. 也正是因为有这种自定义属性的需求,在html规范里增加了自定义属性data-*属性.html5中开发人员可自定义任何想要的属性,只要加上前缀data-,通过这种方式避免与未来的html版本冲突. <form data-type="comment"

Javascript实例详解:网页拖放实现详解

文章简介:拖放的基本概念很简单:创建一个绝对定位的元素,使其可以用鼠标移动.这个技术源自一种叫做"鼠标拖尾"的经典网页技巧.鼠标拖尾是一个或者多个图片在页面上跟着鼠标指针移动. 拖放是一种非常流行的用户界面模式.它的概念很简单:点击某个对象,兵按住鼠标按钮不放,将鼠标移动到另一个区域,然后释放鼠标按钮讲对象"放"在这里.拖放功能也流行到了Web上,成为了一些更传统的配置界面的一种候选方案. 拖放的基本概念很简单:创建一个绝对定位的元素,使其可以用鼠标移动.这个技术源

POWERDESIGNER 10.0 简介

   POWERDESIGNER 10.0 简介  PowerDesigner 是唯一结合了下列几种标准建模技术的建模工具套件:使用 UML 的应用程序建模.业务流程建模和传统数据库建模技术,从而为您提供了高度集成.基于知识库.可自定义.图形化.直观并易于使用的工具集.产品说明作为功能强大的全部集成的建模和设计解决方案,PowerDesigner 可使企业快速.高效并一致地构建自己的信息系统.PowerDesigner 提供大量角色功能,从而区分企业内部不同职责.PowerDesigner 使用

ASP.NET 2.0+Atlas编写鼠标拖放程序

asp.net|程序|鼠标 摘要 本文将详细探讨Atlas中的声明性编程与强制性编程之间的关系,及如何用之在一个web客户端实现拖放功能.下图为本文相应示例程序运行结果快照. 一. 简介 本文旨在帮助读者理解微软的Atlas技术的某些方面的工作原理.Atlas的实现宗旨是简化AJAX风格的Web程序开发.然而,就象所有其它技术一样,为了更好地使用这个工具,你需要深入理解Atlas抽象的内在技术.Atlas抽象的一个关键之处是新的XML标记语法,目的是实现利用Atlas进行编程更为容易.借助于XM

ADO .NET简介

ado ADO .NET由Microsoft ActiveX Data Objects (ADO)改进而来,它提供平台互用和可收缩的数据访问功能.由于XML(Extensible Markup Language,可扩展标示语言)是用于进行数据传送的格式,任何可以读取XML格式的应用程序都可以对数据进行处理.实际上,接收组件根本不需要ADO.NET组件.它可以是基于Microsoft Visual Studio的解决方案或在任何平台上运行的任何应用程序. 可编程能力 利用Visual Studio

拖放 DataGrid 列--来自MSDN

datagrid 摘要:了解如何利用基本的 GDI 功能,从而通过 DataGrid 控件获得可视化效果.通过跨越托管边界进行调用,可以利用本机 GDI 功能来执行屏幕捕获,并最终获得拖放体验. 下载 ColumnDragDataGrid.msi 文件. 本页内容 简介 入门 ScreenImage 类 DraggedDataGridColumn 类 ColumnDragDataGrid 类 列跟踪 重写 DataGrid 的 OnPaint 方法 小结 简介几个月以前,当我初到 Microso

Dojo简介

简介 Dojo是AJAX框架之一. Dojo是一个功能强大的JavaScript库的集合,可以为许多特性提供简单的API.其中的一个特性是生成HTTP请求并接收其响应的能力.除了提供AJAX功能外,Dojo还提供一些用于字符串操纵.DOM操纵.拖放支持和数据结构的程序包. Dojo是一个用JavaScript语言实现的开源DHTML工具包.它是在几个项目捐助基础上建立起来的(nWidgets, Burstlib, f(m)),这也是为什么叫它a unified toolkit的原因.Dojo的目

有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代

有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 关于

《HTML5与CSS3实战指南》——第1章 HTML5和CSS3简介1.1 什么是HTML5

第1章 HTML5和CSS3简介 本章将简要回顾HTML5和CSS3的发展历程,并介绍HTML5和CSS3对于现代网站及Web应用程序的重要性,以及如何应用这些技术. 当然,如果您希望直接进入创建项目的实质部分,并开始学习如何使用HTML5和CSS3的新技术及功能,您可以先跳到第2章,稍后再回到本章. 1.1 什么是HTML5 我们今天所理解的HTML5,它具有一段相对动荡的历史.您可能已经了解到HTML是万维网上用于描述网页内容及数据的主要标记语言.HTML5是此标记语言的最新版本,它包括新功