基于JavaScript實現(xiàn)本地圖片預(yù)覽
更新時間:2017年02月08日 16:59:46 作者:司馬懿字仲達(dá)
這篇文章主要為大家詳細(xì)介紹了基于JavaScript實現(xiàn)本地圖片預(yù)覽的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了js本地圖片預(yù)覽的具體代碼,供大家參考,具體內(nèi)容如下
<!DOCTYPE html> <!-- <!DOCTYPE html>一定要放在第一行,除非上面都是空行 在HTML規(guī)范中,單獨存在的標(biāo)簽是不需要使用/來自我關(guān)閉的,比如<br>,<input>,<hr>等等這樣的標(biāo)簽都是符合語法的. 在XHTML規(guī)范中,單獨存在的標(biāo)簽要按照XML的語法規(guī)則進(jìn)行自我關(guān)閉,上面三個標(biāo)簽就應(yīng)寫成<br />,<input />,<hr /> --> <html> <head> <meta charset="utf8"> <style> input[type=radio] { /* 按鈕與文字對齊 */ vertical-align:middle; } input[type=file] { display: block; } #img { width: 200px; height: 200px; border: 1px solid black; margin-top: 10px; } </style> </head> <body> <input type="radio" name="previewType" value="fileReader" onChange="onPreviewTypeChange()">fileReader <input type="radio" name="previewType" value="createURL" onChange="onPreviewTypeChange()">createURL <hr> <input type="file" id="imgFile" onChange="imgChange()" value="test.jpg"> <img id="img"> <script> var previewTypes = document.getElementsByName("previewType"); var imgFile = document.getElementById("imgFile"); var img = document.getElementById("img"); function getPreviewType() { for(var i=0; i<previewTypes.length; i++) { if(previewTypes[i].checked) { return previewTypes[i].value; } } } function onPreviewTypeChange() { imgChange(event.target.value); } function imgChange(type) { img.src = ""; var files = imgFile.files; console.log(files); if(!files || files.length === 0) { return; } var file = files[0]; if(!type) { type = getPreviewType(); if(!type) { return; } } switch(type) { case "fileReader": var fr = new FileReader(); fr.onload = function(progressEvent) { console.log(progressEvent); img.src = progressEvent.target.result; } fr.readAsDataURL(file); break; case "createURL": img.onload = function() { //釋放一個之前通過調(diào)用 URL.createObjectURL() 創(chuàng)建的已經(jīng)存在的 URL 對象。 URL.revokeObjectURL(img.src); } img.src = URL.createObjectURL(file); break; } } </script> </body> </html>
fileReader.readAsDataURL
URL.createObjectURL
可以看出URL實質(zhì)上是以“blob:”打頭的,后面跟著32位的UUID(8-4-4-4-12)的結(jié)構(gòu)。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- JS預(yù)覽圖像將本地圖片顯示到瀏覽器上
- Javascript圖片上傳前的本地預(yù)覽實例
- javascript IE7 瀏覽器本地圖片預(yù)覽
- 在頁面預(yù)覽客戶端本地圖片的js代碼(兼容FF IE)
- 純JS實現(xiàn)本地圖片預(yù)覽的方法
- javascript firefox不顯示本地預(yù)覽圖片問題的解決方法
- JS中利用FileReader實現(xiàn)上傳圖片前本地預(yù)覽功能
- JavaScript實現(xiàn)圖片本地預(yù)覽功能【不用上傳至服務(wù)器】
- 原生js FileReader對象實現(xiàn)圖片上傳本地預(yù)覽效果
- JavaScript實現(xiàn)預(yù)覽本地上傳圖片功能完整示例
- js實現(xiàn)的在本地預(yù)覽圖片功能示例
相關(guān)文章
uploadify插件實現(xiàn)多個圖片上傳并預(yù)覽
這篇文章主要為大家詳細(xì)介紹了uploadify插件實現(xiàn)多個圖片上傳并預(yù)覽,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-09-09微信小程序使用this.setData()遇到的問題及解決方案詳解
this.setData估計是小程序中最經(jīng)常用到的一個方法,但是要注意其實他是有限制的,忽略這些限制的話,會導(dǎo)致數(shù)據(jù)無法更新,下面這篇文章主要給大家介紹了關(guān)于微信小程序使用this.setData()遇到的問題及解決方案,需要的朋友可以參考下2022-08-08JavaScript的arguments對象應(yīng)用示例
使用特殊對象 arguments,開發(fā)者無需明確指出參數(shù)名,就能訪問它們,下面為大家介紹下其具體的應(yīng)用2014-09-09JavaScript樹型數(shù)據(jù)與一維數(shù)組相互轉(zhuǎn)換方式
這篇文章主要介紹了JavaScript樹型數(shù)據(jù)與一維數(shù)組相互轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06