国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > HTML > 正文

詳解HTML5中的拖放事件(Drag 和 drop)

2024-08-26 00:19:06
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

瀏覽器支持

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

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

HTML5 拖放實(shí)例

<!DOCTYPE html><html> <head> <style type="text/css"> #div1 {width:488px;height:70px;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>  <p>請(qǐng)把 Aseoe logo的圖片拖放到矩形中:p>  <div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)">div> <br /> <img id="drag1" src="http://www.aseoe.com/statics/images/eoe/logo.png" draggable="true" ondragstart="drag(event)" />  </body> </html> 

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

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

拖動(dòng)什么 - ondragstart 和 setData()

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

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

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

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

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

放到何處 - ondragover

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

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

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

event.preventDefault()

進(jìn)行放置 - ondrop

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

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

function drop(ev){ev.preventDefault();var data=ev.dataTransfer.getData("Text");ev.target.appendChild(document.getElementById(data));}

代碼解釋:

調(diào)用 preventDefault() 來(lái)避免瀏覽器對(duì)數(shù)據(jù)的默認(rèn)處理(drop 事件的默認(rèn)行為是以鏈接形式打開(kāi))

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

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

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

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)各位學(xué)習(xí)或者使用HTML5能有所幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)VeVb武林網(wǎng)的支持。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到HTML教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 云龙县| 宜兰县| 历史| 慈溪市| 囊谦县| 娱乐| 濮阳县| 台湾省| 临沭县| 巴南区| 阳曲县| 衡东县| 将乐县| 阜新市| 西华县| 齐河县| 宣恩县| 高清| 沭阳县| 河间市| 岱山县| 手机| 阿拉善右旗| 迁西县| 曲靖市| 微山县| 余干县| 肃宁县| 岚皋县| 宣汉县| 达州市| 抚宁县| 义乌市| 城步| 嘉义市| 兴义市| 宁明县| 丹江口市| 虞城县| 和龙市| 厦门市|