基于JQuery實(shí)現(xiàn)圖片上傳預(yù)覽與刪除操作
本文實(shí)例為大家分享了JQuery實(shí)現(xiàn)圖片上傳預(yù)覽與刪除的具體代碼,經(jīng)測(cè)試目前滿足谷歌、火狐、360、IE6,7,8,9,10,11等瀏覽器,供大家參考,具體內(nèi)容如下
1. preview.2.0.html
<!DOCTYPE html> <html> <head> <title>上傳圖片預(yù)覽</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" type="text/css" href="srdz.preview.2.0.css"> <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript" src="srdz.preview.2.0.js"></script> <script type="text/javascript"> $(function(){ var p = new ImgPreview(); p.preview({previewid:"imgupload1"}); p.preview({previewid:"imgupload2"}); }); </script> </head> <body> <div align="center" style="width: 50%;padding: 50px 300px;" id="imgupload1"></div> <div align="center" style="width: 50%;padding: 50px 300px;" id="imgupload2"></div> </body> </html>
2. srdz.preview.2.0.css
.btn-pic { display: block; position: relative; width: 120px; height: 40px; overflow: hidden; cursor: pointer; text-align: center; } .btn-pic-bg { border: 1px solid #ff9000; background: none repeat scroll 0 0 #ff9000; color: #ffffff; text-decoration: none; } .btn-pic span { display: block; line-height: 39px; } .ipt-bg { display: block; position: absolute; top: 0; left: 0; width: 120px; height: 40px; font-size: 100px; opacity: 0; filter: alpha(opacity=0); } .spanc{ color: red; } .drt { float: right; display: none; } .dft { float: left; }
3. srdz.preview.2.0.js
function ImgPreview(){} ImgPreview.prototype.preview=function(options){ var time = new Date().getTime(); var fileid = "file" + time; var xdelid = "xdel" + time; var delid = "del" + time; var viewid = "view" + time; var htm = "" + "<div>" + "<div class='dft'>" + "<a class='btn-pic btn-pic-bg' href='javascript:void(0);'>" + "<span>上傳圖片</span>" + "<input id='" + fileid + "' type='file' name='file' class='ipt-bg' />" + "</a>" + "</div>" + "<div id='" + xdelid + "' class='drt'>" + "<a class='btn-pic btn-pic-bg' href='javascript:void(0)'>" + "<span>刪除圖片</span>" + "<input type='button' id='" + delid + "' class='ipt-bg'/>" + "</a>" + "</div>" + "</div>" + "<div id='" + viewid + "'></div>"; $("#" + options.previewid).html(htm); $("#" + fileid).bind("click",function(){ var $this =$(this); var browser={ isIE:function(ver){ var b = document.createElement('b'); b.innerHTML = '<!--[if IE ' + ver + ']><i></i><![endif]-->'; return b.getElementsByTagName('i').length === 1; } }; $this.change(function(){ var regex=/(.*)\.(jpg|jpeg|png)$/; var val = $this.val(); if(!regex.test(val)){ $("#" + viewid).html("<span class='spanc'>請(qǐng)選擇正確的圖片(jpg、jpeg、png)!</span>"); return; } if(browser.isIE(6)){ HanderOther($this); }else if(browser.isIE(7) || browser.isIE(8) || browser.isIE(9)){ HanderIE789($this); }else if(window.FileReader){ HanderFileReader($this); }else{ $("#" + viewid).html("<span class='spanc'>該瀏覽器不支持預(yù)覽圖片!</span>"); } function HanderFileReader($this){ var oFReader = new window.FileReader(), rFilter = /^(?:image\/bmp|image\/cis\-cod|image\/gif|image\/ief|image\/jpeg|image\/jpeg|image\/jpeg|image\/pipeg|image\/png|image\/svg\+xml|image\/tiff|image\/x\-cmu\-raster|image\/x\-cmx|image\/x\-icon|image\/x\-portable\-anymap|image\/x\-portable\-bitmap|image\/x\-portable\-graymap|image\/x\-portable\-pixmap|image\/x\-rgb|image\/x\-xbitmap|image\/x\-xpixmap|image\/x\-xwindowdump)$/i; oFReader.onload = function (oFREvent){ $("#" + viewid).html("<img src='"+oFREvent.target.result+"' style='width:100%;height:100%;'/>"); $("#" + xdelid).show(); }; var aFiles = $this.get(0).files; if (aFiles.length == 0) { return; } if (!rFilter.test(aFiles[0].type)) { $("#" + viewid).html("<span class='spanc'>請(qǐng)選擇正確的圖片(jpg、jpeg、png)!</span>"); return; } oFReader.readAsDataURL(aFiles[0]); } function HanderIE789($this){ if(options.width != null && parseInt(options.width) > 0){ $("#" + viewid).css("width",options.width + "px"); }else{ $("#" + viewid).css("width","378px"); } if(options.height != null && parseInt(options.height) > 0){ $("#" + viewid).css("height",options.height + "px"); }else{ $("#" + viewid).css("height","358px"); } $("#" + viewid).css("filter","progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src='"+GetImgSrc($this)+"')"); $("#" + xdelid).show(); } function HanderOther($this){ $("#" + viewid).html("<img src='"+$this.val()+"' style='width:100%;height:100%;'/>"); $("#" + xdelid).show(); } function GetImgSrc($this){ $this.select(); $this.blur(); var imgSrc =document.selection.createRange().text; document.selection.empty(); return imgSrc; } }); });//綁定按鈕事件 $("#" + delid).bind("click",function(){ var browser={ isIE:function(ver){ var b = document.createElement('b'); b.innerHTML = '<!--[if IE ' + ver + ']><i></i><![endif]-->'; return b.getElementsByTagName('i').length === 1; } }; if(browser.isIE(7) || browser.isIE(8) || browser.isIE(9)){ $("#" + fileid).val(''); $("#" + viewid).css("filter",""); $("#" + viewid).css("width",""); $("#" + viewid).css("height",""); $("#" + xdelid).hide(); }else{ $("#" + fileid).val(''); $("#" + viewid).empty(); $("#" + xdelid).hide(); } }); };
4. jquery.min.js
更多精彩內(nèi)容,請(qǐng)點(diǎn)擊《jQuery上傳操作匯總》,進(jìn)行深入學(xué)習(xí)和研究。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家學(xué)習(xí)jquery程序設(shè)計(jì)有所幫助。
- jquery實(shí)現(xiàn)圖片上傳前本地預(yù)覽功能
- 基于jquery實(shí)現(xiàn)的上傳圖片及圖片大小驗(yàn)證、圖片預(yù)覽效果代碼
- jQuery插件jcrop+Fileapi完美實(shí)現(xiàn)圖片上傳+裁剪+預(yù)覽的代碼分享
- 基于jquery實(shí)現(xiàn)圖片上傳本地預(yù)覽功能
- jquery實(shí)現(xiàn)兼容瀏覽器的圖片上傳本地預(yù)覽功能
- jQuery實(shí)現(xiàn)圖片放大預(yù)覽實(shí)現(xiàn)原理及代碼
- jQuery+HTML5實(shí)現(xiàn)圖片上傳前預(yù)覽效果
- jQuery點(diǎn)擊頭像上傳并預(yù)覽圖片
- jquery實(shí)現(xiàn)圖片上傳之前預(yù)覽的方法
- jQuery實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)圖片預(yù)覽大圖效果
- 簡(jiǎn)單實(shí)現(xiàn)jQuery上傳圖片顯示預(yù)覽功能
- jQuery實(shí)現(xiàn)圖片上傳預(yù)覽效果功能完整實(shí)例【測(cè)試可用】
相關(guān)文章
jQuery EasyUI 中文API Layout(Tabs)
發(fā)布jQuery EasyUI 中文API—Layout(Tabs)總結(jié),需要的朋友可以參考下。2010-04-04jquery插件jTimer(jquery定時(shí)器)使用方法
很多時(shí)候我們需要按時(shí)間間隔執(zhí)行一個(gè)任務(wù),當(dāng)滿足一定條件時(shí)停止執(zhí)行.此插件旨在解決這一經(jīng)常遇到的問(wèn)題2013-12-12基于jQuery模擬實(shí)現(xiàn)淘寶購(gòu)物車模塊
這篇文章主要介紹了如何利用jQuery+css+html模擬實(shí)現(xiàn)淘寶購(gòu)物車模塊,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動(dòng)手嘗試一下2022-03-03jquery修改網(wǎng)頁(yè)背景顏色通過(guò)css方法實(shí)現(xiàn)
在瀏覽一些網(wǎng)站,尤其是一些小說(shuō)網(wǎng)站的時(shí)候,都會(huì)有修改頁(yè)面背景顏色的地方,這個(gè)是用jquery可以做到2014-06-06jquery.uploadify插件在chrome瀏覽器頻繁崩潰解決方法
這篇文章主要介紹了jquery.uploadify插件在chrome瀏覽器頻繁崩潰解決方法,十分的實(shí)用,遇到相同問(wèn)題,需要解決的朋友可以參考下2015-03-03jQuery實(shí)現(xiàn)標(biāo)簽頁(yè)效果實(shí)戰(zhàn)(4)
這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)標(biāo)簽頁(yè)效果的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02Struts2的s:radio標(biāo)簽使用及用jquery添加change事件
用到Struts2的s:radio標(biāo)簽時(shí)想給它添加一個(gè)change事件,由于此標(biāo)簽為頁(yè)面自動(dòng)生成一個(gè)radio組,不可以像正常那樣控制,于是想到用jquery來(lái)實(shí)現(xiàn)2013-04-04