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

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

名單

代碼如下:

[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]

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

設(shè)置元素為可拖放

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

代碼如下:

<img draggable="true" />

拖動什么 - ondragstart 和 setData()

然后,規(guī)定當(dāng)元素被拖動時,會發(fā)生什么。

在上面的例子中,ondragstart 屬性調(diào)用了一個函數(shù),drag(event),它規(guī)定了被拖動的數(shù)據(jù)。

dataTransfer.setData() 方法設(shè)置被拖數(shù)據(jù)的數(shù)據(jù)類型和值:

代碼如下:

function drag(ev)

{

ev.dataTransfer.setData("Text",ev.target.id);

}

在這個例子中,數(shù)據(jù)類型是 "Text",值是可拖動元素的 id ("drag1")。

放到何處 - ondragover

ondragover 事件規(guī)定在何處放置被拖動的數(shù)據(jù)。

默認地,無法將數(shù)據(jù)/元素放置到其他元素中。如果需要設(shè)置允許放置,我們必須阻止對元素的默認處理方式。

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

代碼如下:

event.preventDefault()

進行放置 - ondrop

當(dāng)放置被拖數(shù)據(jù)時,會發(fā)生 drop 事件。

在上面的例子中,ondrop 屬性調(diào)用了一個函數(shù),drop(event):

代碼如下:

function drop(ev)

{

ev.preventDefault();

var data=ev.dataTransfer.getData("Text");

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

}

代碼解釋:

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

更多信息請查看網(wǎng)頁制作
易賢網(wǎng)手機網(wǎng)站地址:Html5實現(xiàn)如何在兩個div元素之間拖放圖像
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

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

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)