js原生簡單的上傳圖片

學習前端的小夥伴們在項目中確定都遇到過上傳圖片的這種功能吧.前端

那麼今天咱們就來學習一下原生的上傳圖片吧~web

go go go go~~~~app


在原生js中j就有一個很簡單的方法用來操做文件 ——FileReader異步

容許web應用程序異步讀取儲存在用戶電腦上的文件,能夠使用file和blob對象指定要讀取的文件或數據。File對象能夠是來自input上傳文件返回的fileList對象,也能夠來自拖放生成的DataTransfer對象,還能夠是來自在一個HTMLCanvasElement上執行mozGetAsFile()方法後返回結果。

這是官方介紹哈!學習

<div class="uploader" id="uploader">
    <label for="">上傳</label>
    <div class="file">
        <input type="file" accept="image/*" id="file" onchange="uploadFile(event)">
        <span>+</span>
    </div>
</div>
<ul id="list"></ul>
<script>
        var reader = new FileReader();
        var list = document.getElementById("list");
        var lis = list.getElementsByTagName("li");

       function uploadFile(e){
        var file = document.getElementById("file");
        var value = e.srcElement.files[0];
        if(!value) return false;
        if(value.type.indexOf("image") == -1){
            alert("請上傳圖片")
        }
        reader.readAsDataURL(value);
        reader.onload = function(ev){
            var li = document.createElement("li");
            var img = document.createElement("img");
            var close = document.createElement("b");
            close.innerHTML = "X";
            close.className = 'close';
            img.src= ev.srcElement.result;
            li.appendChild(img);
            li.appendChild(close)
            list.appendChild(li);
            closeFn();
        }
       }
       
       function closeFn(){
        for(var i=0;i<lis.length;i++){
            var close  = lis[i].querySelector(".close");
            close.onclick = function(){
                list.removeChild(this.parentNode)
            }
        }
       }

    </script>

ok!簡單的上傳圖片並瀏覽就完成嘍!this

效果圖:spa

圖片描述

相關文章
相關標籤/搜索