drag,drop,datatransfer小結

雖然可以用mousedown、mousemove、mouseup實現拖放功能,但它們只支持瀏覽器內拖放,而html5 的API中,已經可以支持瀏覽器與其他應用程序之間數據元素的相互拖動。


1、屬性 
draggable:想要對某對象元素進行拖動操作,就可以把它的draggable屬性值設置爲true(draggable=“true”)。
此外,img元素和a元素(必須指定href)默認允許拖放。



2、

   事 件                           產生事件的元素                               描述                          

dragstart                   被拖放的元素                                開始拖放操作

drag                          被拖放的元素                                拖放過程中

dragenter                  拖放過程中鼠標經過的元素             被拖放的元素開始進入本元素的範圍內

dragover                   拖放過程中鼠標經過的元素              被拖放的元素在本元素範圍內移動

dragleave                  拖放過程中鼠標經過的元素              被拖放的元素離開本元素的範圍

drop                          拖放的目標元素                              有其他元素拖放到本元素中

dragend                    拖放的對象元素                              拖放操作結束


3、DataTransfer 接口

html5支持拖曳數據存儲,使用datatransfer接口,作用於元素的拖曳基礎上。

var dt = ev.dataTransfer;


屬性:

datatransfer.effectAllowed = value     

//一般在ondragstart事件中設定,返回允許執行拖曳操作效果,可以設置修改:none,                                                                 copy,copyLink, copyMove,link,linkMove,move,all,uninitialized


datatransfer.types                              

 //返回在dragstart事件出發時爲元素存儲數據的格式,如果是外部文件的拖曳,則返                                                                     回“filse”


datatransfer.clearData([format])           

//刪除指定格式的數據,如果未指定,則刪除當前元素所有數據


datatransfer.setData(format,data)        

 //爲元素添加指定數據,現支持拖動處理的MIME的類型有:text/plain,text/html,                                                                   text/xml,text/uri-list


datatransfer.getData(format)                

//返回指定數據,如果數據不存在,則返回空字符串


datatransfer.files                                  

 //如果是拖曳文件,返回文件列表FileList


datatransfer.setDragImage(element, x, y)  

 //制定拖曳元素時跟隨鼠標移動的圖片,想,y分別爲相對鼠標的座標


datatransfer.addElement(element)          

 //添加一起跟隨拖曳的元素


demo:

http://www.zhangxinxu.com/study/201102/html5-drag-and-drop.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章