好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

HTML5 拖放 ( drag 和 drop )

拖放 ( drag 和 drop )是 html5 标准的组成部分 。 ?

拖放

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

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

浏览器 支持

Internet Explorer 9+,Firefox,Opera,Chrome,和 Safari 支持 拖动。

注意: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 是 一个 DOMString 表示要 添加 到 drag object 的拖动数据的类型。值是可拖动元素的 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")

把被拖元素追加到放置元素(目标元素)中


HTML5 Canvas画布 ? ?HTML5 Audio 音频

查看更多关于HTML5 拖放 ( drag 和 drop )的详细内容...

  阅读:52次

上一篇

下一篇

第1节:HTML5 教程    第2节:HTML5 浏览器支持    第3节:HTML5 新元素    第4节:HTML5 Video 视频    第5节:HTML 5 Video + DOM    第6节:HTML5 内联 SVG    第7节:HTML5 新的 Input 类型    第8节:HTML5 MathML 数学公式    第9节:HTML5 Geolocation 地理定位    第10节:HTML5 Canvas画布    第11节:HTML5 拖放 ( drag 和 drop )    第12节:HTML5 Audio 音频    第13节:HTML5 Web Workers    第14节:HTML5 表单元素    第15节:HTML5 表单属性    第16节:HTML5 语义元素    第17节:HTML5 Web 存储    第18节:HTML5 Web SQL 数据库    第19节:HTML5 应用程序缓存    第20节:HTML 5 服务器发送事件    第21节:HTML5 WebSocket    第22节:HTML5 历史记录API    第23节:HTML 5 代码规范    第24节:HTML5 Canvas 描边和填充    第25节:HTML5 Canvas 绘制矩形    第26节:HTML5 Canvas 清除画布    第27节:HTML5 Canvas 渐变    第28节:HTML5 Canvas 合成    第29节:HTML5 Canvas 绘制图像    第30节:HTML5 Canvas 绘制文本    第31节:HTML5 Canvas 阴影    第32节:HTML5 Canvas 路径    第33节:HTML5 Canvas 转换    第34节:HTML5 Canvas 状态    第35节:HTML5 Canvas toDataURL()    第36节:HTML5 Canvas 像素处理    第37节:HTML5 Canvas 制作动画