溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

HTML5文件拖放的方法

發(fā)布時間:2022-03-11 16:06:41 來源:億速云 閱讀:207 作者:iii 欄目:web開發(fā)

這篇文章主要介紹“HTML5文件拖放的方法”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“HTML5文件拖放的方法”文章能幫助大家解決問題。

拖放(Drag 和 drop)是 HTML5 標(biāo)準(zhǔn)的組成部分。

拖放

拖放是一種常見的特性,即抓取對象以后拖到另一個位置。

在 HTML5 中,拖放是標(biāo)準(zhǔn)的一部分,任何元素都能夠拖放。

瀏覽器支持

Internet Explorer 9、Firefox、Opera 12、Chrome 以及 Safari 5 支持拖放。

注釋:在 Safari 5.1.2 中不支持拖放。

HTML5 拖放實例

下面的例子是一個簡單的拖放實例:

實例

<!DOCTYPE HTML>

<html>

<head>

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

<div id="div1" ondrop="drop(event)"

ondragover="allowDrop(event)"></div>

<img id="drag1" src="img_logo.gif" draggable="true"

ondragstart="drag(event)" width="336" height="69" />

</body>

</html>

它看上去也許有些復(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ù)。

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

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

event.preventDefault()

進(jìn)行放置 - 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ù)的默認(rèn)處理(drop 事件的默認(rèn)行為是以鏈接形式打開)

通過 dataTransfer.getData("Text") 方法獲得被拖的數(shù)據(jù)。該方法將返回在 setData() 方法中設(shè)置為相同類型的任何數(shù)據(jù)。

被拖數(shù)據(jù)是被拖元素的 id ("drag1")

把被拖元素追加到放置元素(目標(biāo)元素)中

關(guān)于“HTML5文件拖放的方法”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI