• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    如何實現(xiàn)文件拖拽上傳

    來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 20:11:56
    文檔

    如何實現(xiàn)文件拖拽上傳

    如何實現(xiàn)文件拖拽上傳:拖拽選擇文件屏蔽默認事件剛開始的時候,是在網(wǎng)上找了一個例子,這個例子中提到,需要在document上屏蔽和drag相關的所有事件的默認處理方式,代碼如下:$(document).on({ dragleave:function(e){ //拖離 e.preventDefault(); }, dr
    推薦度:
    導讀如何實現(xiàn)文件拖拽上傳:拖拽選擇文件屏蔽默認事件剛開始的時候,是在網(wǎng)上找了一個例子,這個例子中提到,需要在document上屏蔽和drag相關的所有事件的默認處理方式,代碼如下:$(document).on({ dragleave:function(e){ //拖離 e.preventDefault(); }, dr

    拖拽選擇文件

    屏蔽默認事件

    剛開始的時候,是在網(wǎng)上找了一個例子,這個例子中提到,需要在document上屏蔽和drag相關的所有事件的默認處理方式,代碼如下:

    $(document).on({ 
     dragleave:function(e){ //拖離 
     e.preventDefault(); 
     }, 
     drop:function(e){ //拖后放 
     e.preventDefault(); 
     }, 
     dragenter:function(e){ //拖進 
     e.preventDefault(); 
     }, 
     dragover:function(e){ //拖來拖去 
     e.preventDefault(); 
     } 
     });

    實際上,在我們的文件上傳中,接受拖拽的區(qū)域一般只有一個小區(qū)域,所以我對其做了如下的精簡

    $drop.on("dragenter", function (e) {
     e.preventDefault();
     console.log("enter");
     $drop.addClass("hover");});$drop.on("dragleave drop", function (e) {
     e.preventDefault();
     console.log("leave");
     $drop.removeClass("hover");});$drop.on("dragover", function (e) {
     e.preventDefault();})

    并且,在enter事件的時候,給目標區(qū)域增加了一個hover的樣式,讓接受區(qū)域高亮

    默認情況下是醬紫的,(所以在drop 和leave事件中要去掉這個樣式)

    對來源不同的文件進行處理

    因為要同時處理input框和拖拽區(qū)域,所以我的html結(jié)構(gòu)如下:

     <p class="row" id="dropBox" @drop.prevent="Change($event)">
     <p class="import-data">
     <button 
     :class="{'disabled' : resultMsg.length > 0}" class="btn btn-info">
     <i class="fa fa-cloud-upload text"></i>
     選擇文件 
     </button>
     <span :class="{'error-tips':isError}">{{msg}}</span>
     <input 
     type="file" 
     v-show="resultMsg.length == 0" 
     @change="Change($event)" 
     name="importExcel" 
     class="importExcel" 
     value="" />
     </p>
     <br>
     <p class="loading" :style="'width:'+loading+'%'"></p>
     </p>

    #dropBox 的drop事件和input的change事件同時綁定Change函數(shù)并將event對象傳入函數(shù)中
    這里,我在drop事件上加入了prevent修飾符來屏蔽默認事件,如果不屏蔽事件,接受區(qū)域#dropBox 是無法接收到文件,并且文件會觸發(fā)瀏覽器的下載(如果不能直接預覽的話)或者預覽;

     Change:function(ev){
     var e = window.event || ev; 
     var file = e.target.files ? e.target.files[0] : e.dataTransfer.files[0];
     if(!file){
     vm.msg = "點擊選擇,或者拖拽填寫好數(shù)據(jù)的excel文件致此";
     vm.isError = true;
     return false
     } 
     },

    ps:隱去了js代碼中的業(yè)務邏輯只講述公共部分,

    在接受用戶選擇的文件時,用e.target.files作為判斷條件,來判斷是否有input選擇的文件,如果是則取 e.target.files[0] ,如果不是 則取 e.dataTransfer.files[0]
    這兩個事件對象的屬性是瀏覽器根據(jù)不同的情況掛在事件對象上的。

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    如何實現(xiàn)文件拖拽上傳

    如何實現(xiàn)文件拖拽上傳:拖拽選擇文件屏蔽默認事件剛開始的時候,是在網(wǎng)上找了一個例子,這個例子中提到,需要在document上屏蔽和drag相關的所有事件的默認處理方式,代碼如下:$(document).on({ dragleave:function(e){ //拖離 e.preventDefault(); }, dr
    推薦度:
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久精品九九亚洲精品| 99久久精品毛片免费播放| 人人妻人人澡人人爽人人精品97| 久久精品国产亚洲欧美| 亚洲精品夜夜夜妓女网| 99久久精品这里只有精品 | 亚洲热线99精品视频| 亚洲综合精品一二三区在线| 精品一区二区三区免费毛片爱| 久久精品国产亚洲Aⅴ蜜臀色欲| 久久亚洲国产精品一区二区| 国内精品伊人久久久久AV影院| 四虎永久在线精品免费一区二区| Xx性欧美肥妇精品久久久久久 | 国产精品尹人在线观看| 国产精品网站在线观看| 国产精品对白交换视频| 久久久久久亚洲Av无码精品专口 | 国产精品久久久天天影视| 无码精品日韩中文字幕| 亚洲AV成人精品日韩一区18p| 国产精品最新国产精品第十页| 在线人成精品免费视频| 99久久精品国产麻豆| 国产精品区一区二区三在线播放| 人妻少妇精品视频一区二区三区| 夜夜精品无码一区二区三区 | 在线成人精品国产区免费| 美女岳肉太深了使劲国产精品亚洲专一区二区三区 | 国产区精品福利在线观看精品| 2023国产精品自拍| 国产叼嘿久久精品久久| 99国内精品久久久久久久| 女人香蕉久久**毛片精品| 久久久久免费精品国产| 四虎国产精品免费久久5151| 青草青草久热精品视频在线网站 | 国产精品嫩草影院一二三区| 久久99久久99小草精品免视看| 亚洲AV无码精品色午夜果冻不卡| 国产精品九九久久免费视频 |