-
實現(xiàn)拖拽效果
源元素 - 要拖拽的文件 目標(biāo)元素 - 要拖拽到哪里去
-
目前實現(xiàn)拖拽效果
使用原生DOM就能實現(xiàn) - 最麻煩 使用jQuery的插件 HTML5種提供的拖拽功能
-
HTML5拖拽
1)源元素事件 dragStart - 當(dāng)鼠標(biāo)開始拖放時被觸發(fā) drag - 當(dāng)鼠標(biāo)拖放過程中被觸發(fā) dragend 當(dāng)鼠標(biāo)拖放結(jié)束時被觸發(fā) 2)目標(biāo)元素事件 dragover - 當(dāng)鼠標(biāo)到達(dá)目標(biāo)元素被觸發(fā),會反復(fù)觸發(fā) dragenter - 當(dāng)鼠標(biāo)拖放進(jìn)入到目標(biāo)元素內(nèi)觸發(fā) drop - 當(dāng)鼠標(biāo)實現(xiàn)拖放效果時被觸發(fā) 問題:HTML頁面默認(rèn)不允許拖放,稱之為HTML頁面的默認(rèn)行為 解決:在dragover的事件中組織默認(rèn)行為即可event.preventDefault(); dragleave - 當(dāng)鼠標(biāo)離開目標(biāo)元素時觸發(fā) 3)dataTransfer對象 作用:類似于window系統(tǒng)的剪切板功能 功能:可以將源元素的信息,存儲在這里,提供給目標(biāo)元素 使用: 使用事件對象獲取到dataTransfer對象 var trans = event.dataTransfer; 設(shè)置數(shù)據(jù) setData(type,data)方法 type:類型,特指標(biāo)識(id),一般為字符串 data:設(shè)置的數(shù)據(jù)內(nèi)容 獲取數(shù)據(jù) getData(type); 清除數(shù)據(jù) clearData(type) 所有的數(shù)據(jù)內(nèi)容,存儲在瀏覽器內(nèi)存中,當(dāng)使用完數(shù)據(jù)內(nèi)容時,要清除 事件對象 - 作為事件處理函數(shù)的參數(shù)存在 DOM底層代碼的默認(rèn)寫法就是event,如果直接使用event就可以不穿event參數(shù),這種寫法不標(biāo)準(zhǔn) 4)從本地拖拽文件到頁面中 var transfer = event.dataTransfer; //找到拖拽的文件 var file = transfer.files[0]; //新建文件讀取對象 var reader = new FileReader(); //讀取文件 reader.readAsDataURL(file); //讀取完以后加載 reader.onload = function(){ d1.innerHTML = "<img src"+reader.result+">"; }
HTML5實現(xiàn)拖拽
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
推薦閱讀更多精彩內(nèi)容
- 在此之前,實現(xiàn)拖拽操作都是開發(fā)人員自定義邏輯實現(xiàn)的,但是HTML5提供了拖拽API ,使得拖拽操作的實現(xiàn)變得簡單。...
- Range對象的方法 Range對象之cloneRange、cloneContents、extractConten...
- W3C中關(guān)于H5拖拽(拖放)的介紹 拖放(Drag 和 drop)是 HTML5 標(biāo)準(zhǔn)的組成部分拖放是一種常見的特...
- 千里修書只為墻,讓他三尺又何妨?萬里長城今猶在,不見當(dāng)年秦始皇。 關(guān)于“六尺巷“”的故事,想必每個人耳熟能詳 。 ...