佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫(kù) > HTML5 拖放功能實(shí)現(xiàn)代碼

HTML5 拖放功能實(shí)現(xiàn)代碼

熱門標(biāo)簽:百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 阿里云 檢查注冊(cè)表項(xiàng) 使用U盤裝系統(tǒng) 硅谷的囚徒呼叫中心 智能手機(jī) 網(wǎng)站建設(shè) 美圖手機(jī)
在HTML5中,拖放是標(biāo)準(zhǔn)的一部分,任何元素都能夠拖放,具體內(nèi)容如下

1、拖放 

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. <!DOCTYPE HTML>  
  2. <html>  
  3. <head>  
  4. <style type="text/css">  
  5. #div1 {width:350px;height:70px;padding:10px;border:1px solid #aaaaaa;}   
  6. </style>  
  7. <script>  
  8. function allowDrop(ev)   
  9. {   
  10. ev.preventDefault();   
  11. }   
  12. function drag(ev)   
  13. {   
  14. ev.dataTransfer.setData("Text",ev.target.id);   
  15. }   
  16. function drop(ev)   
  17. {   
  18. ev.preventDefault();   
  19. var data=ev.dataTransfer.getData("Text");   
  20. ev.target.appendChild(document.getElementById(data));   
  21. }   
  22. </script>  
  23. </head>  
  24. <body>  
  25. <p>拖動(dòng) W3CSchool.cc 圖片到矩形框中:</p>  
  26. <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>  
  27. <br>  
  28. <img id="drag1" src="/images/logo.png" draggable="true" ondragstart="drag(event)" width="336" height="69">  
  29. </body>  
  30. </html>   

2、設(shè)置元素為可拖放
 
首先,為了使元素可拖動(dòng),把 draggable 屬性設(shè)置為 true :<img draggable="true">
 
3、拖動(dòng)什么 - ondragstart 和 setData()
 
然后,規(guī)定當(dāng)元素被拖動(dòng)時(shí),會(huì)發(fā)生什么。在上面的例子中,ondragstart 屬性調(diào)用了一個(gè)函數(shù),drag(event),它規(guī)定了被拖動(dòng)的數(shù)據(jù)。dataTransfer.setData() 方法設(shè)置被拖數(shù)據(jù)的數(shù)據(jù)類型和值:

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. function drag(ev)   
  2. {   
  3.    ev.dataTransfer.setData("Text",ev.target.id);   
  4. }    

在這個(gè)例子中,數(shù)據(jù)類型是 "Text",值是可拖動(dòng)元素的 id ("drag1")。
 
4、放到何處 - ondragover
 
ondragover 事件規(guī)定在何處放置被拖動(dòng)的數(shù)據(jù)。默認(rèn)地,無法將數(shù)據(jù)/元素放置到其他元素中。如果需要設(shè)置允許放置,我們必須阻止對(duì)元素的默認(rèn)處理方式。這要通過調(diào)用 ondragover 事件的 event.preventDefault() 方法:event.preventDefault()
 
5、進(jìn)行放置 - ondrop
 
 當(dāng)放置被拖數(shù)據(jù)時(shí),會(huì)發(fā)生 drop 事件。在上面的例子中,ondrop 屬性調(diào)用了一個(gè)函數(shù),drop(event):

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. function drop(ev)   
  2. {   
  3. ev.preventDefault();   
  4. var data=ev.dataTransfer.getData("Text");   
  5. ev.target.appendChild(document.getElementById(data));   
  6. }    

代碼解釋:

調(diào)用 preventDefault() 來避免瀏覽器對(duì)數(shù)據(jù)的默認(rèn)處理(drop 事件的默認(rèn)行為是以鏈接形式打開)。通過 dataTransfer.getData("Text") 方法獲得被拖的數(shù)據(jù)。該方法將返回在 setData() 方法中設(shè)置為相同類型的任何數(shù)據(jù)。被拖數(shù)據(jù)是被拖元素的 id ("drag1")。把被拖元素追加到放置元素(目標(biāo)元素)中。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:山南 賀州 黃山 煙臺(tái) 懷化 湘潭 湖北 通遼

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《HTML5 拖放功能實(shí)現(xiàn)代碼》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    惠东县| 五台县| 泽普县| 图们市| 南投市| 辰溪县| 霍邱县| 台南市| 汝阳县| 定襄县| 武平县| 都匀市| 启东市| 资溪县| 临湘市| 寻甸| 赤城县| 桐城市| 崇义县| 余干县| 巴林右旗| 蒙阴县| 郑州市| 辽阳县| 萨迦县| 枣庄市| 克山县| 聂拉木县| 醴陵市| 满洲里市| 德令哈市| 桂东县| 深泽县| 县级市| 阜宁县| 兴业县| 五家渠市| 巴彦县| 新干县| 勃利县| 库伦旗|