Html5實現如何在兩個div元素之間拖放圖像
來源:易賢網 閱讀:1835 次 日期:2016-07-13 16:08:18
溫馨提示:易賢網小編為您整理了“Html5實現如何在兩個div元素之間拖放圖像”,方便廣大網友查閱!

調用 preventDefault() 來避免瀏覽器對數據的默認處理(drop 事件的默認行為是以鏈接形式打開)通過 dataTransfer.getData(Text) 方法獲得被拖的數據,感興趣的朋友可以參考下

名單

代碼如下:

[code]

<!DOCTYPE HTML>

<html>

<head>

<style type="text/css">

#div1, #div2

{float:left; width:100px; height:35px; margin:10px;padding:10px;border:1px solid #aaaaaa;}

</style>

<script type="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");

ev.target.appendChild(document.getElementById(data));

}

</script>

</head>

<body>

<img src="/i/w3school_logo_black.gif" draggable="true" ondragstart="drag(event)" id="drag1" />

<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)">

</div>

<div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>

</body>

</html>

[/code]

它看上去也許有些復雜,不過我們可以分別研究拖放事件的不同部分。

設置元素為可拖放

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

代碼如下:

<img draggable="true" />

拖動什么 - 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")把被拖元素追加到放置元素(目標元素)中

更多信息請查看網頁制作
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
未满十八18勿进黄网站免费看