在html5中,支持拖放API接口,通過該功能,數(shù)據(jù)可以在瀏覽器與其他應(yīng)用程序之間互相拖放,想要實現(xiàn)該操作,必須經(jīng)過一下兩個步驟
(1)將想要拖放的對象標(biāo)簽的draggable屬性設(shè)為true。這樣才能將該標(biāo)簽進(jìn)行拖放,令外,img標(biāo)簽與a標(biāo)簽必 須指定為true,默認(rèn)允許拖放。
(2)編寫與有拖放有關(guān)的事件處理代碼,常用的播放事件如下:
dragstart 開始拖放操作
drag 拖放過程中
dragenter 被拖放的標(biāo)簽開始進(jìn)入本標(biāo)簽的范圍內(nèi)
dragover 被拖放的標(biāo)簽正在本標(biāo)簽范圍內(nèi)移動
dragleave 被拖放的標(biāo)簽離開本標(biāo)簽的范圍
drop 有其他的標(biāo)簽被拖放到本標(biāo)簽中
dragend 拖放操作結(jié)束
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>拖放</title> <script type="text/javascript"> function init() { // (1) 拖放開始 source.addEventListener("dragstart", function(ev) { //(1) 向dataTransfer對象追加數(shù)據(jù) var dt = ev.dataTransfer; dt.effectAllowed = 'all'; //(2) 拖動元素為dt.setData("text/plain", this.id); dt.setData("text/plain", "你好"); }, false); // (3) dragend:拖放結(jié)束 dest.addEventListener("dragend", function(ev) { //不執(zhí)行默認(rèn)處理(拒絕被拖放) ev.preventDefault(); }, false); // (4) drop:被拖放 dest.addEventListener("drop", function(ev) { // 從DataTransfer對象那里取得數(shù)據(jù) var dt = ev.dataTransfer; //(5) 不執(zhí)行默認(rèn)處理(拒絕被拖放) ev.preventDefault(); //停止事件傳播 ev.stopPropagation(); }, false); } </script> </head> <body onload="init()"> <h5>請拖放</h5> </html>
在上述的代碼中,在頁面加載時,自動觸發(fā)inint()事件。該事件中包括拖放開始,被拖放和結(jié)束拖放三個函數(shù)。在瀏覽器中打開該網(wǎng)頁,鼠標(biāo)拖動顯示到網(wǎng)頁中的晚間圖片,網(wǎng)頁會自動加載要的內(nèi)容。
【相關(guān)推薦】
1. 免費h5在線視頻教程
2. HTML5 完整版手冊
3. php.cn原創(chuàng)html5視頻教程