HTML5 拖拽復(fù)制功能的實(shí)現(xiàn)
拖拽是一種常見的特性,即抓取對象以后拖到另一個位置。 在 HTML5 中,拖拽是標(biāo)準(zhǔn)的一部分,任何元素都能夠拖拽。 Html5拖拽非常常見的一個功能,但是大部分拖拽的案例都是一個剪切的過程, 項目中需要實(shí)現(xiàn)Html5拖拽復(fù)制的功能,Html5拖拽復(fù)制很簡單,只需要在普通Html5拖拽的過程中做一點(diǎn)小小的改動即可。
ps: 本篇博文為非首頁文章,只是簡單的筆記。
瀏覽器支持
- Internet Explorer 9
- Firefox
- Opera 12
- Chrome
- Safari 5
v1.0代碼部分
<!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" src="http://www.cnblogs.com/images/cnblogs_com/toutou/699740/t_Azure.png" draggable="true" ondragstart="drag(event)"/> </body> </html>
代碼解析
實(shí)現(xiàn)思路就是克隆被拖拽的元素,然后把克隆元素appendChild()到指定位置
實(shí)現(xiàn)Html5拖拽復(fù)制的核心代碼.cloneNode()
Html5拖拽復(fù)制完成以后,其實(shí)還有很多事情可以在appendChild()執(zhí)行以后完成,這個看具體需求吧
如果只是想實(shí)現(xiàn)傳統(tǒng)的HTML5拖拽的話,移除var item = document.getElementById(data).cloneNode();,然后ev.target.appendChild(data);即可
通過此文,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
如何在Linux?系統(tǒng)中使用apt?包管理器安裝?Git?LFS
Git LFS是一個開源擴(kuò)展,用于解決Git在處理大型文件時的效率和性能問題,這篇文章主要介紹了在?Linux系統(tǒng)中使用apt包管理器來安裝Git LFS的問題,需要的朋友可以參考下2023-05-05網(wǎng)絡(luò)抓包工具wireshark入門教程詳解
Wireshark是一個網(wǎng)絡(luò)數(shù)據(jù)包分析軟件,功能非常強(qiáng)大,奈何他是英文版的,今天就為大家詳細(xì)介紹一下網(wǎng)絡(luò)抓包工具wireshark的使用教程2018-10-10Tortoise Git(烏龜git)常用命令總結(jié)
Git作為一個復(fù)雜的版本控制系統(tǒng),命令之多,即使經(jīng)常使用,一些命令也記不住,一般只記住幾個常用的命令,本文主要介紹了Tortoise Git(烏龜git)常用命令總結(jié),具有一定的參考價值,感興趣的可以了解一下2023-08-08