首页 > web前端技术 > html5 > html5拖放有什么用

html5拖放有什么用

拖放(Drag 和 Drop)是很常见的特性。它指的是您抓取某物并拖入不同的位置。拖放是 HTML5 标准的组成部分:任何元素都是可拖放的。通过一个案例来说明播放功能的实现:
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
#div1 {width:198px; height:66px;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/eg_dragdrop_w3school.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));
}
代码解释:
调用 preventDefault() 来阻止数据的浏览器默认处理方式(drop 事件的默认行为是以链接形式打开)
通过 dataTransfer.getData() 方法获得被拖的数据。该方法将返回在 setData() 方法中设置为相同类型的任何数据
被拖数据是被拖元素的 id ("drag1")
把被拖元素追加到放置元素中

相关推荐