首頁 >web前端 >H5教程 >Html5實作如何在兩個div元素之間拖放圖片_html5教學技巧

Html5實作如何在兩個div元素之間拖放圖片_html5教學技巧

WBOY
WBOY原創
2016-05-16 15:49:511791瀏覽

原本效果

拖曳之後效果

程式碼如下


複製代碼
代碼如下:

[code]







Html5實作如何在兩個div元素之間拖放圖片_html5教學技巧






[/code]
它看起來也許有些複雜,不過我們可以分別研究拖放事件的不同部分。

設定元素為可拖放

首先,為了使元素可拖動,把draggable 屬性設置為true :

複製代碼
代碼如下:

Html5實作如何在兩個div元素之間拖放圖片_html5教學技巧

拖曳什麼 - ondragstart 和 setData()

然後,規定當元素被拖曳時,會發生什麼事。

在上面的範例中,ondragstart 屬性呼叫了一個函數,drag(event),它規定了被拖曳的資料。

dataTransfer.setData() 方法設定被拖曳資料的資料型別與值:

複製程式碼
複製程式碼



複製程式碼


複製程式碼

複製程式碼

複製程式碼

複製程式碼

程式碼:function drag(ev){
ev.dataTransfer.setData("Text",ev.target.id);
}


在這個範例中,資料型別是"Text",值是可拖曳元素的id ("drag1")。

放到哪裡 - ondragover

ondragover 事件規定在何處放置被拖曳的資料。

預設地,無法將資料/元素放置到其他元素中。如果需要設定允許放置,我們必須阻止對元素的預設處理方式。

這要通過調用ondragover 事件的event
.preventDefault() 方法:

複製代碼
程式碼如下:


event.preventDefault()




進行放置 - ondrop

當放置被拖曳資料時,會發生 drop 事件。 在上面的例子中,ondrop 屬性調用了一個函數,drop(

event

):

複製代碼 程式碼如下:function drop(ev) { ev.preventDefault(); var data=ev.dataTransfer.getData("Text "); ev.target.appendChild(document.getElementById(data)); } 代碼解釋: 呼叫 preventDefault() 來避免瀏覽器對資料的預設處理(drop 事件的預設行為是以連結形式開啟)透過 dataTransfer.getData("Text") 方法獲得被拖曳的資料。此方法將傳回在 setData() 方法中設定為相同類型的任何資料。被拖曳資料是被拖曳元素的 id ("drag1")把被拖曳元素追加到放置元素(目標元素)中
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn