HTML5 拖拽復(fù)制功能的實(shí)現(xiàn)
拖拽是一種常見(jiàn)的特性,即抓取對(duì)象以后拖到另一個(gè)位置。 在 HTML5 中,拖拽是標(biāo)準(zhǔn)的一部分,任何元素都能夠拖拽。 Html5拖拽非常常見(jiàn)的一個(gè)功能,但是大部分拖拽的案例都是一個(gè)剪切的過(guò)程, 項(xiàng)目中需要實(shí)現(xiàn)Html5拖拽復(fù)制的功能,Html5拖拽復(fù)制很簡(jiǎn)單,只需要在普通Html5拖拽的過(guò)程中做一點(diǎn)小小的改動(dòng)即可。
ps: 本篇博文為非首頁(yè)文章,只是簡(jiǎn)單的筆記。
瀏覽器支持
- 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>請(qǐng)把 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í)行以后完成,這個(gè)看具體需求吧
如果只是想實(shí)現(xiàn)傳統(tǒng)的HTML5拖拽的話,移除var item = document.getElementById(data).cloneNode();,然后ev.target.appendChild(data);即可
通過(guò)此文,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- NodeJS與HTML5相結(jié)合實(shí)現(xiàn)拖拽多個(gè)文件上傳到服務(wù)器的實(shí)現(xiàn)方法
- JS HTML5拖拽上傳圖片預(yù)覽
- JS HTML5實(shí)現(xiàn)拖拽移動(dòng)列表效果
- Nodejs+express+html5 實(shí)現(xiàn)拖拽上傳
- HTML5附件拖拽上傳drop & google.gears實(shí)現(xiàn)代碼
- 移動(dòng)端html5圖片上傳方法【更好的兼容安卓IOS和微信】
- JS+HTML5手機(jī)開(kāi)發(fā)之滾動(dòng)和慣性緩動(dòng)實(shí)現(xiàn)方法分析
- 基于HTML5的可預(yù)覽多圖片Ajax上傳
相關(guān)文章
如何在Linux?系統(tǒng)中使用apt?包管理器安裝?Git?LFS
Git LFS是一個(gè)開(kāi)源擴(kuò)展,用于解決Git在處理大型文件時(shí)的效率和性能問(wèn)題,這篇文章主要介紹了在?Linux系統(tǒng)中使用apt包管理器來(lái)安裝Git LFS的問(wèn)題,需要的朋友可以參考下2023-05-05網(wǎng)絡(luò)抓包工具wireshark入門教程詳解
Wireshark是一個(gè)網(wǎng)絡(luò)數(shù)據(jù)包分析軟件,功能非常強(qiáng)大,奈何他是英文版的,今天就為大家詳細(xì)介紹一下網(wǎng)絡(luò)抓包工具wireshark的使用教程2018-10-10Tortoise Git(烏龜git)常用命令總結(jié)
Git作為一個(gè)復(fù)雜的版本控制系統(tǒng),命令之多,即使經(jīng)常使用,一些命令也記不住,一般只記住幾個(gè)常用的命令,本文主要介紹了Tortoise Git(烏龜git)常用命令總結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08搭建一個(gè)開(kāi)源項(xiàng)目?jī)煞N方式安裝git的詳細(xì)教程
這篇文章主要介紹了搭建一個(gè)開(kāi)源項(xiàng)目?jī)煞N方式安裝git,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08