在拖放的過程中會觸發(fā)以下事件:
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、石城網(wǎng)絡(luò)推廣、微信平臺小程序開發(fā)、石城網(wǎng)絡(luò)營銷、石城企業(yè)策劃、石城品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供石城建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:www.rwnh.cn
在拖動目標上觸發(fā)事件 (源元素)
ondragstart?- 用戶開始拖動元素時觸發(fā)
ondrag?- 元素正在拖動時觸發(fā)
ondragend?- 用戶完成元素拖動后觸發(fā)
釋放目標時觸發(fā)的事件
ondragenter?- 當(dāng)被鼠標拖動的對象進入其容器范圍內(nèi)時觸發(fā)此事件
ondragover?- 當(dāng)某被拖動的對象在另一對象容器范圍內(nèi)拖動時觸發(fā)此事件
ondragleave?- 當(dāng)被鼠標拖動的對象離開其容器范圍內(nèi)時觸發(fā)此事件
ondrop?- 在一個拖動過程中,釋放鼠標鍵時觸發(fā)此事件
event對象(以e代替)
e.target
W3Cschool上的解釋是:返回觸發(fā)此事件的元素(事件的目標節(jié)點),這個target屬性只兼容ie9及以上
e.preventDefault()
取消事件的默認動作。
e.dataTransfer.setData()
設(shè)置被拖數(shù)據(jù)的數(shù)據(jù)類型和值。
e.dataTransfer.getData()
獲得被拖的數(shù)據(jù)。
HTML 5 拖放
HTML5 音頻
HTML5 畫布
拖放(Drag 和 drop)是 HTML5 標準的組成部分。
拖放
拖放是一種常見的特性,即抓取對象以后拖到另一個位置。
在 HTML5 中,拖放是標準的一部分,任何元素都能夠拖放。
瀏覽器支持
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ù)。
默認地,無法將數(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")
把被拖元素追加到放置元素(目標元素)中
如何使用HTML5進行文件拖放
1.實現(xiàn)將文件拖放到頁面元素上
2.在JavaScript中分析被拖放的文件
3.在客戶端上加載和解析文件
4.使用XMLHttpRequest2將文件異步上傳到服務(wù)器
5.上傳時,顯示圖形進度條
6.使用進程增強( progressive enhancement)以確保文件上傳表單在所有瀏覽器正常工作
7.純JavaScript代碼,不使用其它庫。
網(wǎng)站名稱:html5拖放,html5拖動div
鏈接地址:http://www.rwnh.cn/article46/dssohhg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站改版、動態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)