1. 程式人生 > >web 圖片上傳實現本地預覽

web 圖片上傳實現本地預覽

UNC view 使用 區別 lec F5 sed 邊界 urn

在說上傳之前先說說如何替換or美化瀏覽器自帶的簡陋上傳按鈕(自定義自己的上傳按鈕 如:img):

1.將自定義上傳按鈕上方添加 input file 框,實現input實現透明處理。

2.對自定義上傳按鈕添加事件。隱藏真正input框。用事件來觸發:

function imgBtn(){

return document.getElementById("inputid").click();

}

現在瀏覽器基本都支持H5 。針對H5的代碼:

var docObj=document.getElementById("inputid");
var imgObjPreview=document.getElementById("imgId"); imgObjPreview.src = window.URL.createObjectURL(docObj.files[0]);

針對ie的代碼:

docObj.select();
docObj.blur();
var localImagId = document.getElementById("divid or imgid");
var imgSrc = docObj.createTextRange().text;
try{         
   localImagId.style.filter
="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)"; localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc; } catch(e) { console.log(e); alert("您上傳的圖片格式不正確,請重新選擇!"); return false; }
很多大型網站上都使用到了這個濾鏡,它是IE濾鏡的一種,其主要作用就是對圖片進行透明處理。雖然FireFox和IE7以上的IE瀏覽器已經支持透明的PNG圖片,但是就IE5-IE6而言還是有一定的意義。
語法:
filter : progid:DXImageTransform.Microsoft.AlphaImageLoader ( enabled=bEnabled , sizingMethod=sSize , src=sURL )
屬性:
  enabled : 可選項。布爾值(Boolean)。設置或檢索濾鏡是否激活。true | false (這個基本可以忽略,被禁止了那還搞什麽……)

     true :  默認值。濾鏡激活。

     false :  濾鏡被禁止。

sizingMethod : 可選項。字符串(String)。設置或檢索濾鏡作用的對象的圖片在對象容器邊界內的顯示方式。(可以無視這行說明,關鍵是下面的參數。一般來說單獨圖片且精度比較高的使用scale比較合適,除非您把所有的要用到的圖片都放到一張圖那就當我沒說過。但是那樣做的話這張png圖片的體積估計不會很小。另,這個濾鏡只是加載,其填充方式還是可以受CSS控制的。)

     crop : 剪切圖片以適應對象尺寸。

     image : 默認值。增大或減小對象的尺寸邊界以適應圖片的尺寸。

     scale : 縮放圖片以適應對象的尺寸邊界。

  src : 必選項。字符串(String)。(指定圖片的路徑。要註意的是這個路徑是指加載濾鏡的頁面相對於圖片的路徑而不是css文件相對於圖片的路徑。這跟一般的圖片加載有區別。)
使用實例:
.login_logo {
  background-image: url(../Image/login_logo.png);
  _background-image: none;
  _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src=‘/Public/Image/login_logo.png‘);  
}

參考: https://www.cnblogs.com/hzxy-blog/p/6410204.html

上面怎麽點擊瀏覽按鈕後,圖片顯示在網頁中了,這個用到了, 瀏覽按鈕的各個事件 可以參考下...

<body>  
<input type="file" id="input">  
</body>  
<script>  
    document.getElementById("input").addEventListener("focus",function () {  
        console.log("focus");  
    });  
  
    document.getElementById("input").addEventListener("mousedown",function () {  
        console.log("mousedown");  
    });  
  
    document.getElementById("input").addEventListener("mouseup",function () {  
        console.log("mouseup");  
    });  
  
    document.getElementById("input").addEventListener("input",function () {  
        console.log("input");  
    });  
  
    document.getElementById("input").addEventListener("change",function () {  
        console.log("change");  //上傳完後顯示圖片操作
    });  
  
    document.getElementById("input").addEventListener("blur",function () {  
        console.log("blur");  
    });  
  
    document.getElementById("input").addEventListener("click",function () {  
        console.log("click");  
    });  
  
  
</script>  

web 圖片上傳實現本地預覽

web 圖片上傳實現本地預覽