jquery 實(shí)現(xiàn)拖動(dòng)文件上傳加載進(jìn)度條功能
通過(guò)對(duì)文件的拖動(dòng)實(shí)現(xiàn)文件的上傳,主要用到的是HTML5的ondrop事件,上傳內(nèi)容通道FormData傳輸:
//進(jìn)度條 <div class="parent-dlg" > <div class="progress-label">0%</div> <div class="son"></div> </div> //要拖動(dòng)到的地方 <div class="main_content_center"></div>
js:
var dz = $('#main_content_center'); dz.ondragover = function(ev) { //阻止瀏覽器默認(rèn)打開(kāi)文件的操作 ev.preventDefault(); } dz.ondrop = function(ev) { ev.preventDefault(); var files = ev.dataTransfer.files; var len = files.length,i = 0; while (i < len) { var filesName=files[i].name; var extStart=filesName.lastIndexOf("."); var ext=filesName.substring(extStart,filesName.length).toUpperCase(); if(ext!=".JPG"&&ext!=".PNG"&&ext!=".XML"){ //判斷是否是需要的問(wèn)件類(lèi)型 TS.errorAlert("請(qǐng)選擇.jpg、.png、.xml類(lèi)型的文件上傳!"); return false; }else{ test(files[i]); } i++; } $(".parent-dlg").show(); } function test(a){ var formData = new FormData(); formData.append("name", a.name); formData.append("size", a.size); formData.append("data", a); $.ajax({ url:'', type:'post', data:formData, cache: false, processData: false, contentType: false, xhr: function(){ var xhr = $.ajaxSettings.xhr(); if(onprogress && xhr.upload) { xhr.upload.addEventListener("progress" , onprogress, false); return xhr; } } }) }; function onprogress(evt){ var loaded = evt.loaded; //已經(jīng)上傳大小情況 var tot = evt.total; //附件總大小 var per = Math.floor(100*loaded/tot); //已經(jīng)上傳的百分比 $(".progress-label").html( per +"%" ); $(".son").css("width" , per +"%"); if(per>=100){ $(".parent-dlg").hide(); } }
進(jìn)度條css:
.parent-dlg{position: absolute;width:400px; height:20px; border:1px solid #aaaaaa;border-radius:3px;top:30%;left:50%;z-index:9999;margin-left:-200px;display:none;} .parent-dlg .progress-label{position: absolute;left: 50%;top: 4px;font-weight: bold;text-shadow: 1px 1px 0 #fff;} .parent-dlg .son {width:0; height:100%; background-color:#cccccc; text-align:center; line-height:20px; font-size:16px; font-weight:bold;}
此內(nèi)容只是一個(gè)大概的文件上傳技術(shù)方向,可根據(jù)自己的項(xiàng)目進(jìn)行改進(jìn)!
總結(jié)
以上所述是小編給大家介紹的jquery 實(shí)現(xiàn)拖動(dòng)文件上傳加載進(jìn)度條功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
- jquery ajax加載數(shù)據(jù)前臺(tái)渲染方式 不用for遍歷的方法
- JQuery Ajax動(dòng)態(tài)加載Table數(shù)據(jù)的實(shí)例講解
- jQuery實(shí)現(xiàn)動(dòng)態(tài)加載select下拉列表項(xiàng)功能示例
- jquery引入外部CDN 加載失敗則引入本地jq庫(kù)
- JS文件中加載jquery.js的實(shí)例代碼
- jQuery+datatables插件實(shí)現(xiàn)ajax加載數(shù)據(jù)與增刪改查功能示例
- jQuery實(shí)現(xiàn)滾動(dòng)到底部時(shí)自動(dòng)加載更多的方法示例
- 菊花轉(zhuǎn)動(dòng)的jquery加載動(dòng)畫(huà)效果
相關(guān)文章
jQuery中serializeArray()與serialize()的區(qū)別實(shí)例分析
這篇文章主要介紹了jQuery中serializeArray()與serialize()的區(qū)別,結(jié)合實(shí)例形式分析了jQuery中serializeArray()與serialize()的具體功能、使用技巧與用法區(qū)別,需要的朋友可以參考下2015-12-12jquery將json轉(zhuǎn)為數(shù)據(jù)字典的實(shí)例代碼
這篇文章主要介紹了jquery將json轉(zhuǎn)為數(shù)據(jù)字典的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10jQuery中DOM樹(shù)操作之使用反向插入方法實(shí)例分析
這篇文章主要介紹了jQuery中DOM樹(shù)操作之使用反向插入方法,實(shí)例分析了反向插入方法與插入方法回調(diào)的使用技巧,需要的朋友可以參考下2015-01-01jquery仿京東導(dǎo)航/仿淘寶商城左側(cè)分類(lèi)導(dǎo)航下拉菜單效果
jquery實(shí)現(xiàn)下拉菜單效果,jquery寫(xiě)的仿京東導(dǎo)航菜單,一個(gè)經(jīng)典的左側(cè)多級(jí)導(dǎo)航菜單,學(xué)會(huì)了可以任意改變布局,感興趣的朋友可以參考下哈,希望對(duì)你有所幫助2013-04-04