欢迎光临杨雨的个人博客站!

杨雨个人网站-杨雨个人博客-杨照佳

杨雨个人博客网站

关注互联网和搜索引擎的个人博客网站

首页 > WEB开发 > html5案例分享 >

Html5实现如安在两个div元素之间拖放图像

发布时间:2016-11-29  编辑:杨雨个人博客网站   点击:   

本来结果

Html5实现怎样在两个div元素之间拖放图像

拖拽之后结果

Html5实现怎样在两个div元素之间拖放图像

代码如下



代码如下:
[code]
<!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>
<img src="/i/w3school_logo_black.gif" draggable="true" ondragstart="drag(event)" id="drag1" />
<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)">
</div>
<div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
</body>
</Html>

[/code]
它看上去大概有些伟大,不外我们可以别离研究拖放变乱的差异部门。

配置元素为可拖放

起首,为了使元素可拖动,把 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")把被拖元素追加到安排元素(方针元素)中

本文地址:http://itbyc.com/web/html5/13806.html
转载请注明出处。
分享是一种快乐,也是一种美德:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
博客首页 | WEB开发 | 网站运营 | CMS使用教程 滇ICP备14002061号-1