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í)候 會(huì)觸發(fā)ondragover 頻繁觸發(fā) 不給ondrop機(jī)會(huì)
oBox.ondragenter = function(){
oBox.innerHTML = '請(qǐng)釋放鼠標(biāo)';
};
oBox.ondragover = function(){
return false;
};
oBox.ondragleave = function(){
oBox.innerHTML = '請(qǐng)將文件拖拽到此區(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ǐng)將文件拖拽到此區(qū)域</div>
</body>
</html>
使用http://tools.jb51.net/code/HtmlJsRun在線運(yùn)行測(cè)試效果如下:

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript表單(form)操作技巧大全》、《JavaScript查找算法技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
IE中直接運(yùn)行顯示當(dāng)前網(wǎng)頁(yè)中的圖片 推薦
IE中直接運(yùn)行顯示當(dāng)前網(wǎng)頁(yè)中的圖片 推薦...2006-08-08
JS實(shí)現(xiàn)頁(yè)面數(shù)據(jù)懶加載
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)頁(yè)面數(shù)據(jù)懶加載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
Node.js實(shí)戰(zhàn) 建立簡(jiǎn)單的Web服務(wù)器
本章我們同樣通過(guò)實(shí)戰(zhàn)的演練,利用Node.js建立一個(gè)簡(jiǎn)單的Web服務(wù)器2012-03-03
ES6記錄異步函數(shù)的執(zhí)行時(shí)間詳解
在這篇文章里,我會(huì)實(shí)現(xiàn)一個(gè)可重用的函數(shù)來(lái)處理 JavaScript 延時(shí)異步操作。有需要的小伙伴們可以參考借鑒,下面來(lái)一起看看。2016-08-08
JavaScript語(yǔ)句可以不以;結(jié)尾的煩惱
JavaScript語(yǔ)句可以不以;結(jié)尾的煩惱...2007-03-03
JS實(shí)現(xiàn)秒殺倒計(jì)時(shí)特效
這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)秒殺倒計(jì)時(shí)特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-01-01

