操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    霧,沒有山河那么壯觀,沒有雨那么纏綿。它總是那么輕盈,那么淡雅,給人一種美的享受。陽光被層層疊疊的樹葉過濾,漏到他身上變成了淡淡的圓圓的輕輕搖曳的光暈。

    前言

    今天我們聊一聊圖片上傳,單張Or多張 ,如今,各大圖片上傳插件數不勝數,例如:的 .js, File 、、.等等。But。上面說到的這些插件,今天我們不談,我們來看一看使用HTML5中的 如何實現 圖片的單張及多張預覽、刪除、上傳等功能。先看下實現后的效果如下:

    2|0實現

    2|1前端部分

    這塊是用戶點擊按鈕 其中我們最重要的一句話是input type=file 和給了一個屬性,可以滿足多張圖片上傳

    下面這塊區域是用于圖片預覽的

    2|2樣式部分

    什么?連樣式你都要看,還有沒有人性(苦笑臉)

    2|3Js部分

    首先我們分析下上面的html,我們用一個label把input和一個img標簽包起來了,我們希望點擊效果圖那個+號圖片,就能彈出選擇相片的對話框,所以,我們需要先給label來一個點擊事件:

    js 上傳照片插件_js圖片編輯上傳插件_js圖片上傳好用的插件

    $("#btnClubImg").click(function() { //TODO Something });

    接著我們再看,因為我們是要獲取上傳的文件,而我們的文件主要是在input上,所以,我們先將input標簽獲取到:

    $("#btnClubImg").click(function() {
          var $input = $("#ClubImagesUpload");
         console.log($input);//打印當前元素
    });

    我們將當前input元素標簽打印出來看看是個什么東東

    我們展開第一項會發現files里面長度是0

    好,我們繼續分析,因為我們想要能當input框改變的時候,說簡單點 就是有選擇到文件的時候,我們能獲取到當前選擇的文件,這個和獲取input框文字輸入是一樣的道理,所以,經過分析,我們知道需要給input標簽加一個事件:

     $("#btnClubImg").click(function() {
          var $input = $("#ClubImagesUpload");
          console.log($input);
          $input.on("change", function () {
             console.log(this);//打印改變后的當前元素
      });
    });   

    讓我們來瞄一眼,獲取到改變后的input元素里面有些啥東東:

    這里很清楚得可以看到,我們獲取到了選擇的圖片,包括有最后修改事件,圖片名稱,大小以及圖片類型(有了文件類型,我們就可以判斷當前用戶選擇的是否是圖片不是嗎(斜眼笑)) 同樣,這是單個文件的, 如果是多個文件,就會有多個file

    接著往下看,通過打印輸出我們可以看到,我們再input 標簽的files元素上已經拿到了我們想要的文件信息,我們只需要獲取它們就行了:

     var files = this.files;
     var length = files.length;

    js圖片上傳好用的插件_js圖片編輯上傳插件_js 上傳照片插件

    這樣,我們就可以獲取到所有文件,以及文件的個數,那這里問題來了,我們如果是選擇多個文件,如果將其依次輸出并展示到頁面上呢?看到上面標注的四個字,腦袋中有沒有閃現出兩個字呢?循環

     $.each(files, function (key, value) {
            //TOTO Something
      });

    通過將上面得到的files 循環,我們可以依次得到每個文件的信息。這樣,你就不僅可以將其依次輸出,如果你愿意,你還可以將其送上天~

    var fileReader = new FileReader();//實例化一個FileReader對象
    var file_ = files[key];//獲取當前文件
    if (/^image\/\w+$/.test(file_.type)) {//將當前文件進行正則匹配,看是否是選擇的圖片
          fileReader.onload = function() {//當讀取操作完成時調用
           }         
    } 

    有必要延伸下的知識點:

    主要用于將文件內容讀入內存,通過一系列異步接口,可以在主線程中訪問本地文件。

    使用對象,web應用程序可以異步的讀取存儲在用戶計算機上的文件(或者原始數據緩沖)內容,可以使用File對象或者Blob對象來指定所要處理的文件或數據。

    回到主題,我們已經能夠得到文件并且得到返回,所以此時,我們只需要展示返回的結果就行了

    $("#w").css("-image", "url(" + this. + ")");

    我們將其this.打印出來看看是個什么東東:

    不言而喻js圖片上傳好用的插件,是將圖片轉換成了的數據格式。最后,我們調用 讀取文件內容,將其用data:url字符串表示出來

    .(value);

    這樣,你就可以得到一個簡易的圖片上傳的Demo了,但是并不是最終的js圖片上傳好用的插件,因為你還需要加很多業務進去。比如:得到一張預覽圖片后,當前標簽會被占用,如果下次循環進來,直接使用原標簽,肯定會將之前的圖片替換,那這肯定不是我們想要的效果,我們希望是能依次展示,而不是替換展示。所以,我們還需要做一些處理:

     $("#clubInputImagePreview").css("background-image", "url(" + this.result + ")");
    //使用apend再當前元素下追加一個子節點
     $("#clubInputImagePreview") .append("");
    

    js圖片上傳好用的插件_js圖片編輯上傳插件_js 上傳照片插件

    //使用after 向當前兄弟節點 追加一個同級節點 $("#clubInputImagePreview").after( "
    ");

    然后我們追加的刪除圖片,也需要給其點擊事件,讓我們的當前預覽區域消失:

    $("#ImgRemove").click(function () {
              $(this).parent().remove();
    });

    最后,你會發現結果還不是我們想要的,那是因為 當前ID還在,所以無法進行下一步操作,而我們只需要將當前元素的Id 掉,然后新增一個同ID的元素,這樣瀏覽器就會認為這是一個新的元素:

     $input.removeAttr("id");
     var newInput ='';
     $(this).append($(newInput));

    最后完整JS代碼如下:

      var intP = 0;
            $("#btnClubImg").click(function() {
                var $input = $("#ClubImagesUpload");
    //            console.log($input);
                $input.on("change",
                    function () {
    //                    console.log(this);
                        var files = this.files;
                        var length = files.length;
                        if (intP > 8) {
                            layer.msg('圖片不能再多了~', {});
                            return;
    

    js 上傳照片插件_js圖片上傳好用的插件_js圖片編輯上傳插件

    } $.each(files, function (key, value) { var fileReader = new FileReader(); var file_ = files[key]; if (/^image\/\w+$/.test(file_.type)) { fileReader.onload = function() { if (intP > 8) { layer.msg('圖片不能再多了~', {}); return; } if (key == 0 && intP == 0) { console.log(this.result); $("#clubInputImagePreview").css("background-image", "url(" + this.result + ")"); $("#clubInputImagePreview") .append( ""); $("#clubInputImagePreview").after( "
    "); } else { $("#clubInputImagePreview" + parseInt(intP) + "").css("background-image", "url(" + this.result + ")"); $("#clubInputImagePreview" + parseInt(intP) + "").append( ""); $("#clubInputImagePreview" + parseInt(intP) + "").after( "
    js圖片上傳好用的插件_js 上傳照片插件_js圖片編輯上傳插件

    parseInt(parseInt(1) + parseInt(intP)) + "'class='col-sm-9 img-preview img-preview-sm delImg' >
    "); } if (key == 0 && intP == 0) { $("#ImgRemove").click(function () { $(this).parent().remove(); }); } else { $("#ImgRemove" + parseInt(parseInt(1) + parseInt(intP)) + "").click(function () { $(this).parent().remove(); }); } intP += parseInt(1); }; fileReader.readAsDataURL(value); } else { layer.msg("格式錯誤
    請選擇一個圖片文件"); } }); }); $input.removeAttr("id"); var newInput = ''; $(this).append($(newInput)); });

    總結

    以上所述是小編給大家介紹的Html5實現單張、多張圖片上傳功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

    到此這篇關于Html5如何實現單張、多張圖片上傳功能就介紹到這了。信對了人,是快樂,是欣慰,是驕傲,是無言的幸福;信錯了人,是悲傷,是憤怒,是委屈,甚至致命。更多相關Html5如何實現單張、多張圖片上傳功能內容請查看相關欄目,小編編輯不易,再次感謝大家的支持!

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有