JS實(shí)現(xiàn)的文件拖拽上傳功能示例
本文實(shí)例講述了JS實(shí)現(xiàn)的文件拖拽上傳功能。分享給大家供大家參考,具體如下:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>www.dbjr.com.cn JS文件拖拽上傳</title> <style> div{ width: 300px; height: 300px; border:1px dashed #000; position:absolute; top: 50%; left: 50%; margin:-150px 0 0 -150px; text-align:center; font:20px/300px '微軟雅黑'; display:none; } </style> <script> window.onload = function () { var oBox = document.getElementById('box'); var oM = document.getElementById('m1'); var timer = null; document.ondragover = function(){ clearTimeout(timer); timer = setTimeout(function(){ oBox.style.display = 'none'; },200); oBox.style.display = 'block'; }; //進(jìn)入子集的時(shí)候 會觸發(fā)ondragover 頻繁觸發(fā) 不給ondrop機(jī)會 oBox.ondragenter = function(){ oBox.innerHTML = '請釋放鼠標(biāo)'; }; oBox.ondragover = function(){ return false; }; oBox.ondragleave = function(){ oBox.innerHTML = '請將文件拖拽到此區(qū)域'; }; oBox.ondrop = function(ev){ var oFile = ev.dataTransfer.files[0]; var reader = new FileReader(); //讀取成功 reader.onload = function(){ console.log(reader); }; reader.onloadstart = function(){ alert('讀取開始'); }; reader.onloadend = function(){ alert('讀取結(jié)束'); }; reader.onabort = function(){ alert('中斷'); }; reader.onerror = function(){ alert('讀取失敗'); }; reader.onprogress = function(ev){ var scale = ev.loaded/ev.total; if(scale>=0.5){ alert(1); reader.abort(); } oM.value = scale*100; }; reader.readAsDataURL(oFile,'base64'); return false; }; }; </script> </head> <body> <meter id="m1" value="0" min="0" max="100"></meter> <div id="box">請將文件拖拽到此區(qū)域</div> </body> </html>
使用http://tools.jb51.net/code/HtmlJsRun在線運(yùn)行測試效果如下:
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript表單(form)操作技巧大全》、《JavaScript查找算法技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript錯誤與調(diào)試技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
IE中直接運(yùn)行顯示當(dāng)前網(wǎng)頁中的圖片 推薦
IE中直接運(yùn)行顯示當(dāng)前網(wǎng)頁中的圖片 推薦...2006-08-08JS實(shí)現(xiàn)頁面數(shù)據(jù)懶加載
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)頁面數(shù)據(jù)懶加載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02Node.js實(shí)戰(zhàn) 建立簡單的Web服務(wù)器
本章我們同樣通過實(shí)戰(zhàn)的演練,利用Node.js建立一個簡單的Web服務(wù)器2012-03-03ES6記錄異步函數(shù)的執(zhí)行時(shí)間詳解
在這篇文章里,我會實(shí)現(xiàn)一個可重用的函數(shù)來處理 JavaScript 延時(shí)異步操作。有需要的小伙伴們可以參考借鑒,下面來一起看看。2016-08-08JS實(shí)現(xiàn)秒殺倒計(jì)時(shí)特效
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)秒殺倒計(jì)時(shí)特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-01-01