拖拽是一种常见的特性,即抓取对象以后拖到另一个位置。 在 HTML5 中,拖拽是标准的一部分,任何元素都能够拖拽。 Html5拖拽非常常见的一个功能,但是大部分拖拽的案例都是一个剪切的过程, 项目中需要实现Html5拖拽复制的功能,Html5拖拽复制很简单,只需要在普通Html5拖拽的过程中做一点小小的改动即可。
浏览器支持:
Internet Explorer 9
Firefox
Opera 12
Chrome
Safari 5
代码部分
<!DOCTYPE html>
<html>
<head>
<styletype="text/css">
#div1 {
width: 700px;
height: 120px;
padding: 10px;
border: 1px solid #aaaaaa;
}
#drag1 {
cursor:pointer;
}
</style>
<scripttype="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");
var item = document.getElementById(data).cloneNode();
ev.target.appendChild(item);
}
</script>
</head>
<body>
<p>请把 Windows Azure 的图片拖放到矩形中:</p>
<divid="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<br/>
<br/>
<br/>
<br/>
<br/>
<imgid="drag1" class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="http://www.cnblogs.com/images/cnblogs_com/toutou/699740/t_Azure.png" draggable="true" ondragstart="drag(event)"/>
</body>
</html>代码解析
实现思路就是克隆被拖拽的元素,然后把克隆元素appendChild()到指定位置
实现Html5拖拽复制的核心代码.cloneNode()
Html5拖拽复制完成以后,其实还有很多事情可以在appendChild()执行以后完成,这个看具体需求吧
如果只是想实现传统的HTML5拖拽的话,移除var item = document.getElementById(data).cloneNode();,然后ev.target.appendChild(data);即可。
點擊查看更多內容
4人點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦