DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> HTML基礎知識 >> HTML5教程 >> HTML5 拖放功能實現代碼
HTML5 拖放功能實現代碼
編輯:HTML5教程     
在HTML5中,拖放是標准的一部分,任何元素都能夠拖放,具體內容如下

1、拖放 

XML/HTML Code復制內容到剪貼板
  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>拖動 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、設置元素為可拖放
 
首先,為了使元素可拖動,把 draggable 屬性設置為 true :<img draggable="true">
 
3、拖動什麼 - ondragstart 和 setData()
 
然後,規定當元素被拖動時,會發生什麼。在上面的例子中,ondragstart 屬性調用了一個函數,drag(event),它規定了被拖動的數據。dataTransfer.setData() 方法設置被拖數據的數據類型和值:

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

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

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

代碼解釋:

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved