JS實(shí)現(xiàn)的圖片預(yù)覽插件與用法示例【不上傳圖片】
本文實(shí)例講述了JS實(shí)現(xiàn)不需要上傳的圖片預(yù)覽插件與用法。分享給大家供大家參考,具體如下:
小小的幾十行代碼,很牛逼,很實(shí)用。
支持多個(gè)圖片的預(yù)覽,只要new多個(gè)對(duì)象就行了。
html如下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>uploadPreview演示</title> <script src="uploadPreview.js" type="text/javascript"></script> <script> window.onload = function () { new uploadPreview({ UpBtn: "up_img", DivShow: "imgdiv", ImgShow: "imgShow" }); new uploadPreview({ UpBtn: "up_img2", DivShow: "imgdiv2", ImgShow: "imgShow2" }); } </script> </head> <body> <div id="imgdiv"><img id="imgShow" width="200"/></div> <input type="file" id="up_img" /> <div id="imgdiv"><img id="imgShow2" width="200" /></div> <input type="file" id="up_img2" /> </body> </html>
插件uploadPreview.js代碼如下
/* *發(fā)布時(shí)間:2014年12月12日 *插件介紹:圖片上傳本地預(yù)覽插件 兼容瀏覽器(IE 谷歌 火狐) 不支持safari 當(dāng)然如果是使用這些內(nèi)核的瀏覽器基本都兼容 *使用方法: *界面構(gòu)造(IMG標(biāo)簽外必須擁有DIV 而且必須給予DIV控件ID) * <div id="imgdiv"><img id="imgShow" width="120" height="120" /></div> * <input type="file" id="up_img" /> *調(diào)用代碼: * new uploadPreview({ UpBtn: "up_img", DivShow: "imgdiv", ImgShow: "imgShow" }); *參數(shù)說(shuō)明: *UpBtn:選擇文件控件ID; *DivShow:DIV控件ID; *ImgShow:圖片控件ID; *Width:預(yù)覽寬度; *Height:預(yù)覽高度; *ImgType:支持文件類型 格式:["jpg","png"]; *callback:選擇文件后回調(diào)方法; *版本:v1.4 更新內(nèi)容如下: 1.修復(fù)回調(diào). *版本:v1.3 更新內(nèi)容如下: 1.修復(fù)多層級(jí)框架獲取路徑BUG. 2.去除對(duì)jquery插件的依賴. */ /* *work:圖片預(yù)覽插件 */ var uploadPreview = function(setting) { /* *work:this(當(dāng)前對(duì)象) */ var _self = this; /* *work:判斷為null或者空值 */ _self.IsNull = function(value) { if (typeof (value) == "function") { return false; } if (value == undefined || value == null || value == "" || value.length == 0) { return true; } return false; } /* *work:默認(rèn)配置 */ _self.DefautlSetting = { UpBtn: "", DivShow: "", ImgShow: "", Width: 100, Height: 100, ImgType: ["gif", "jpeg", "jpg", "bmp", "png"], ErrMsg: "選擇文件錯(cuò)誤,圖片類型必須是(gif,jpeg,jpg,bmp,png)中的一種", callback: function() { } }; /* *work:讀取配置 */ _self.Setting = { UpBtn: _self.IsNull(setting.UpBtn) ? _self.DefautlSetting.UpBtn : setting.UpBtn, DivShow: _self.IsNull(setting.DivShow) ? _self.DefautlSetting.DivShow : setting.DivShow, ImgShow: _self.IsNull(setting.ImgShow) ? _self.DefautlSetting.ImgShow : setting.ImgShow, Width: _self.IsNull(setting.Width) ? _self.DefautlSetting.Width : setting.Width, Height: _self.IsNull(setting.Height) ? _self.DefautlSetting.Height : setting.Height, ImgType: _self.IsNull(setting.ImgType) ? _self.DefautlSetting.ImgType : setting.ImgType, ErrMsg: _self.IsNull(setting.ErrMsg) ? _self.DefautlSetting.ErrMsg : setting.ErrMsg, callback: _self.IsNull(setting.callback) ? _self.DefautlSetting.callback : setting.callback }; /* *work:獲取文本控件URL */ _self.getObjectURL = function(file) { var url = null; if (window.createObjectURL != undefined) { url = window.createObjectURL(file); } else if (window.URL != undefined) { url = window.URL.createObjectURL(file); } else if (window.webkitURL != undefined) { url = window.webkitURL.createObjectURL(file); } return url; } /* *work:綁定事件 */ _self.Bind = function() { document.getElementById(_self.Setting.UpBtn).onchange = function() { if (this.value) { if (!RegExp("\.(" + _self.Setting.ImgType.join("|") + ")$", "i").test(this.value.toLowerCase())) { alert(_self.Setting.ErrMsg); this.value = ""; return false; } if (navigator.userAgent.indexOf("MSIE") > -1) { try { document.getElementById(_self.Setting.ImgShow).src = _self.getObjectURL(this.files[0]); } catch (e) { var div = document.getElementById(_self.Setting.DivShow); this.select(); top.parent.document.body.focus(); var src = document.selection.createRange().text; document.selection.empty(); document.getElementById(_self.Setting.ImgShow).style.display = "none"; div.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)"; div.style.width = _self.Setting.Width + "px"; div.style.height = _self.Setting.Height + "px"; div.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = src; } } else { document.getElementById(_self.Setting.ImgShow).src = _self.getObjectURL(this.files[0]); } _self.Setting.callback(); } } } /* *work:執(zhí)行綁定事件 */ _self.Bind(); }
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript文件與目錄操作技巧匯總》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動(dòng)畫(huà)特效與技巧匯總》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
- JS+HTML5實(shí)現(xiàn)上傳圖片預(yù)覽效果完整實(shí)例【測(cè)試可用】
- javascript實(shí)現(xiàn)的圖片預(yù)覽功能
- javascript圖片預(yù)覽和上傳(兼容IE)
- 基于JavaScript實(shí)現(xiàn)本地圖片預(yù)覽
- 多種方式實(shí)現(xiàn)js圖片預(yù)覽
- 微信js-sdk預(yù)覽圖片接口及從拍照或手機(jī)相冊(cè)中選圖接口用法示例
- JS驗(yàn)證圖片格式和大小并預(yù)覽的簡(jiǎn)單實(shí)例
- js實(shí)現(xiàn)上傳圖片預(yù)覽的方法
- JS預(yù)覽圖像將本地圖片顯示到瀏覽器上
- js實(shí)現(xiàn)上傳圖片之上傳前預(yù)覽圖片
- Javascript圖片上傳前的本地預(yù)覽實(shí)例
- JS實(shí)現(xiàn)獲取圖片大小和預(yù)覽的方法完整實(shí)例【兼容IE和其它瀏覽器】
相關(guān)文章
Javascript操縱Cookie實(shí)現(xiàn)購(gòu)物車程序
Javascript操縱Cookie實(shí)現(xiàn)購(gòu)物車程序...2006-11-11js實(shí)現(xiàn)簡(jiǎn)單的選項(xiàng)卡效果
本文主要介紹了js實(shí)現(xiàn)簡(jiǎn)單的選項(xiàng)卡效果的示例代碼,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02uni-app中onBackPress()監(jiān)聽(tīng)頁(yè)面返回(更新數(shù)據(jù))
這篇文章主要給大家介紹了關(guān)于uni-app中onBackPress()監(jiān)聽(tīng)頁(yè)面返回(更新數(shù)據(jù))的相關(guān)資料,在UniApp中,可以通過(guò)監(jiān)聽(tīng)頁(yè)面刷新的生命周期函數(shù)來(lái)監(jiān)聽(tīng)頁(yè)面的返回,然后重新調(diào)用接口進(jìn)行刷新,需要的朋友可以參考下2023-10-10js學(xué)習(xí)總結(jié)之DOM2兼容處理this問(wèn)題的解決方法
這篇文章主要為大家詳細(xì)介紹了js學(xué)習(xí)總結(jié)之DOM2兼容處理this問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07現(xiàn)代 JavaScript 開(kāi)發(fā)編程風(fēng)格Idiomatic.js指南中文版
下面的章節(jié)描述的是一個(gè) 合理 的現(xiàn)代 JavaScript 開(kāi)發(fā)風(fēng)格指南,并非硬性規(guī)定。其想送出的核心理念是高度統(tǒng)一的代碼風(fēng)格(the law of code style consistency)。2014-05-05js大數(shù)相加出現(xiàn)精度丟失、運(yùn)算錯(cuò)誤的問(wèn)題
js中數(shù)字類型長(zhǎng)度達(dá)到16位時(shí),進(jìn)行加減乘除運(yùn)算,會(huì)出現(xiàn)精度丟失,運(yùn)算結(jié)果錯(cuò)誤的問(wèn)題,本文講述精度丟失的原因及解決辦法2023-08-08javaScript 關(guān)閉瀏覽器 (不彈出提示框)
如果網(wǎng)頁(yè)不是通過(guò)腳本程序打開(kāi)的(window.open()),調(diào)用window.close()腳本關(guān)閉窗口前,必須先將window.opener對(duì)象置為null,否則瀏覽器(IE7、IE8)會(huì)彈出一個(gè)確定關(guān)閉的對(duì)話框。2010-01-01JS表單驗(yàn)證插件之?dāng)?shù)據(jù)與邏輯分離操作實(shí)例分析【策略模式】
這篇文章主要介紹了JS表單驗(yàn)證插件之?dāng)?shù)據(jù)與邏輯分離操作,結(jié)合實(shí)例形式分析了JavaScript基于策略模式實(shí)現(xiàn)數(shù)據(jù)與邏輯分離的表單驗(yàn)證插件相關(guān)原理、操作技巧及注意事項(xiàng),需要的朋友可以參考下2020-05-05js HTML5多圖片上傳及預(yù)覽實(shí)例解析(不含前端的文件分割)
這篇文章主要詳細(xì)解析了js HTML5多圖片上傳及預(yù)覽實(shí)例,不含前端的文件分割,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08