HTML5 之拖放

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

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

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

HTML5 拖放实例

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

实例1

<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
#div1 {width:488px;height:70px;padding:10px;border:1px solid #aaaaaa;}
</style>
<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>

<p>请把 W3School 的图片拖放到矩形中:</p>

<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<br />
<img id="drag1" src="/i/w3school_banner.gif" draggable="true" ondragstart="drag(event)" />

</body>
</html>

  

一步步看代码的作用

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

<img draggable="true" />

2. 拖动什么 - ondragstart 和 setData()

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

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

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

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

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

3. 放到何处 - ondragover

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

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

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

event.preventDefault()

4. 进行放置 - ondrop

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

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

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

实例2:

如何在两个 <div> 元素之间拖放图像。

<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
#div1, #div2
{float:left; width:100px; height:35px; margin:10px;padding:10px;border:1px solid #aaaaaa;}
</style>
<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)">
  <img src="/i/w3school_logo_black.gif" draggable="true" ondragstart="drag(event)" id="drag1" />
</div>
<div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>

</body>
</html>

  

时间: 2024-12-26 06:33:00

HTML5 之拖放的相关文章

HTML5原生拖放实例分析

原文链接:http://www.cnblogs.com/zhenwen/p/5855107.html HTML5提供了原生拖放功能的JavaScript API,使用起来很方便. 兼容性: 对于PC端浏览器,Firefox.Chrome.Safari支持良好,而IE和Edge浏览器有些特性不支持,如IE10和IE11.Edge对于dataTransfer.setData(format,data) ,只定义了"text"和"URL"两种有效的数据类型.而HTML5规范

HTML5 文件拖放API讲解

本章向大家讲解一下HTML 5中文件API与拖放API的使用方法.HTML5的文件API,可以在浏览器中直接显示客户端文件的信息或文件中的内容,而通过拖放API,可以直接将位于客户端中的文件拖动到浏览器中,也可以单独拖动页面中的元素或者元素中的内容. HTML5拖拽文件预览效果图: 在线演示 以前,我们使用file控件,单击上传按钮后选择计算机中的文件.在HTML5中,我们可以先将计算机中的文件直接拖动到浏览器中进行预览,确定文件是我们所需要的,然后单击上传按钮将该文件上传到服务器端. 我们使用

html5实现拖放

在html5中,支持拖放API接口,通过该功能,数据可以在浏览器与其他应用程序之间互相拖放,想要实现该操作,必须经过一下两个步骤 (1)将想要拖放的对象标签的draggable属性设为true.这样才能将该标签进行拖放,令外,img标签与a标签必  须指定为true,默认允许拖放. (2)编写与有拖放有关的事件处理代码,常用的播放事件如下: dragstart  开始拖放操作 drag       拖放过程中 dragenter  被拖放的标签开始进入本标签的范围内 dragover   被拖放

HTML5 — 让拖放变的流行起来

在HTML5 出现之前,页面元素的拖放需要监听 mousedown.mouseover 以及 mouseup 等一系列事件,然后改变元素的相对位置来实现这一效果.HTML DnD(Drag-and-Drop)API 的出现,使得拖放变的简单.但是由于 DnD 尚处在草案阶段,各浏览器对其规范并未统一,有些事件在不同浏览器中会出现不同效果. 要使用 DnD,需要明确两件事情,一是需要拖动的元素,二是可放置拖动元素的位置.拖放无非是将元素从一个位置拖到另一个位置. Drag 首先我们需要指定要拖动的

HTML5 元素拖放

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>HTML5拖放</title> <script type="text/javascript"> function allowDrop(ev) { ev.preventDefault();//取消默认 } function drag(ev) { //设置被拖数据的数据

HTML5元素拖放设置总结

将元素图片放入div盒子内 1.首先设置元素为可拖放:在img标签内加入draggable=”true”. <img draggable="true"> 2.设置元素的拖动:在img标签中用ondragstart属性调用一个函数drag(ev),这个函数中用dataTransfer.setData()方法设置了被拖数据的数据类型和值. <img ondragstart=”drag(event)”> function drag(ev){ ev.dataTansfe

关于HTML5中拖放

拖拽 事件:dragstart拖拽开始drag拖拽中dragend拖拽结束dragenter进入投放区dragover投放区中移动dragleave离开投放区drop投放 ------------------- 一般在dragover(投放区中移动)事件中,默认地,无法将数据元素放置到其他元素中.如果需要设置允许放置,我们必须阻止对元素的默认处理方式.可通过调用 ondragover 事件的 event.preventDefault()方法. 在dragstart(拖拽开始)事件中可以传值,通过

html5之拖放

1)创建来源项目 1.1)draggable属性的值: true--此元素能被拖动: false--此元素不能被拖动: auto--浏览器能够自主决定某个元素能否被拖动: 1.2)被拖动元素的事件: dragstart--在元素開始被拖动时触发: drag--在元素被拖动时重复触发. dragend--在拖动操作完毕时触发: 2)创建释放区 2.1)释放区事件: dragenter--当被拖动元素进入释放区所占领的屏幕空间时触发: dragover--当被拖动元素在释放区内触发时移动触发: dr

浅谈HTML5拖放

现在,新增的HTML5元素很多,也给开发者带来了很多便利,比如说:结构标记header .nav.arctile.section.footer 表单元素:url.date.emaile.search.tel.range.color.datalist.progress.meter.output等,还有一些webstroge元素.绘图元素.拖放api等,这里着重说一下拖放api. 在生活中,我们经常将桌面的应用程序元素,从一个地方拖拽到另外一个地方,开发者没有一种能实现这种操作的标准技术,在HTML