国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

jQuery實現本地預覽上傳圖片功能

2024-05-06 16:27:31
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了jQuery實現本地預覽上傳圖片功能,為大家推薦了一款圖片上傳預覽插件,感興趣的小伙伴們可以參考一下
 

本文實例介紹了基于JQUERY擴展,圖片上傳預覽插件,目前兼容瀏覽器(IE 谷歌 火狐) 不支持safari,分享給大家供大家參考,具體內容如下

HTML代碼:

<html><head><title>圖片上傳預覽演示</title><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script><script src="16/uploadPreview.js" type="text/javascript"></script><script>$(function () {$("#up").uploadPreview({ Img: "ImgPr", Width: 120, Height: 120 });});</script></head><body><div style="width:500px;margin:0px auto;"><h2>圖片上傳預覽演示</h2><a href="# target="_blank">原文</a><div><img id="ImgPr" width="120" height="120" /></div><input type="file" id="up" /></div></body></html>

js代碼:

*參數說明: Img:圖片ID;Width:預覽寬度;Height:預覽高度;ImgType:支持文件類型;Callback:選擇文件顯示圖片后回調方法;*使用方法: <div><img id="ImgPr" width="120" height="120" /></div><input type="file" id="up" />把需要進行預覽的IMG標簽外 套一個DIV 然后給上傳控件ID給予uploadPreview事件$("#up").uploadPreview({ Img: "ImgPr", Width: 120, Height: 120, ImgType: ["gif", "jpeg", "jpg", "bmp", "png"], Callback: function () { }});*/jQuery.fn.extend({uploadPreview: function (opts) {var _self = this,_this = $(this);opts = jQuery.extend({Img: "ImgPr",Width: 100,Height: 100,ImgType: ["gif", "jpeg", "jpg", "bmp", "png"],Callback: function () {}}, opts || {});_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};_this.change(function () {if (this.value) {if (!RegExp("/.(" + opts.ImgType.join("|") + ")$", "i").test(this.value.toLowerCase())) {alert("選擇文件錯誤,圖片類型必須是" + opts.ImgType.join(",") + "中的一種");this.value = "";return false}if ($.browser.msie) {try {$("#" + opts.Img).attr('src', _self.getObjectURL(this.files[0]))} catch (e) {var src = "";var obj = $("#" + opts.Img);var div = obj.parent("div")[0];_self.select();if (top != self) {window.parent.document.body.focus()} else {_self.blur()}src = document.selection.createRange().text;document.selection.empty();obj.hide();obj.parent("div").css({'filter': 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)','width': opts.Width + 'px','height': opts.Height + 'px'});div.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = src}} else {$("#" + opts.Img).attr('src', _self.getObjectURL(this.files[0]))}opts.Callback()}})}});

直接上第二段代碼,jquery js實現上傳圖片之前預覽本地圖片 

<style type="text/css">#preview_wrapper{    display:inline-block;    width:300px;    height:300px;    background-color:#CCC;}  #preview_fake{    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);  }  #preview_size_fake{    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);     visibility:hidden;  }  #preview{    width:300px;    height:300px;  }  </style><script type="text/javascript">function onUploadImgChange(sender){    if( !sender.value.match( /.jpg|.gif|.png|.bmp/i ) ){      alert('圖片格式無效!');      return false;    }  var objPreview = document.getElementByIdx_x('preview');    var objPreviewFake = document.getElementByIdx_x('preview_fake');    var objPreviewSizeFake = document.getElementByIdx_x('preview_size_fake');  if( sender.files && sender.files[0] ){      objPreview.style.display = 'block';      objPreview.style.width = 'auto';      objPreview.style.height = 'auto';            // Firefox 因安全性問題已無法直接通過 input[file].value 獲取完整的文件路徑      objPreview.src = sender.files[0].getAsDataURL();      }else if( objPreviewFake.filters ){      // IE7,IE8 在設置本地圖片地址為 img.src 時出現莫名其妙的后果      //(相同環境有時能顯示,有時不顯示),因此只能用濾鏡來解決            // IE7, IE8因安全性問題已無法直接通過 input[file].value 獲取完整的文件路徑      sender.select();      var imgSrc = document.selection.createRange().text;            objPreviewFake.filters.item(        'DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;      objPreviewSizeFake.filters.item(        'DXImageTransform.Microsoft.AlphaImageLoader').src = imgSrc;            autoSizePreview( objPreviewFake,        objPreviewSizeFake.offsetWidth, objPreviewSizeFake.offsetHeight );      objPreview.style.display = 'none';    }  }   function onPreviewLoad(sender){    autoSizePreview( sender, sender.offsetWidth, sender.offsetHeight );  }   function autoSizePreview( objPre, originalWidth, originalHeight ){    var zoomParam = clacImgZoomParam( 300, 300, originalWidth, originalHeight );    objPre.style.width = zoomParam.width + 'px';    objPre.style.height = zoomParam.height + 'px';    objPre.style.marginTop = zoomParam.top + 'px';    objPre.style.marginLeft = zoomParam.left + 'px';  }   function clacImgZoomParam( maxWidth, maxHeight, width, height ){    var param = { width:width, height:height, top:0, left:0 };        if( width>maxWidth || height>maxHeight ){      rateWidth = width / maxWidth;      rateHeight = height / maxHeight;            if( rateWidth > rateHeight ){        param.width = maxWidth;        param.height = height / rateWidth;      }else{        param.width = width / rateHeight;        param.height = maxHeight;      }    }        param.left = (maxWidth - param.width) / 2;    param.top = (maxHeight - param.height) / 2;        return param;  }</script> <input name="localfile" type="file" id="localfile" size="28" onchange="onUploadImgChange(this)"/> <!--以下是預覽圖片用的--><div id="preview_wrapper"><div id="preview_fake"><img id="preview" src="" onload="onPreviewLoad(this)"/></div></div><br/><img id="preview_size_fake" />

以上就是本文的全部內容,希望對大家的學習有所幫助。



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 霍林郭勒市| 寿阳县| 温泉县| 安溪县| 甘孜| 呼和浩特市| 凤城市| 宁远县| 上林县| 安宁市| 威信县| 信宜市| 龙泉市| 天峻县| 安泽县| 中西区| 墨竹工卡县| 邻水| 基隆市| 新竹市| 松潘县| 长海县| 济南市| 武威市| 卢湾区| 阳西县| 健康| 阳江市| 石渠县| 万安县| 独山县| 连城县| 江陵县| 沧州市| 治多县| 阿巴嘎旗| 临海市| 朝阳区| 互助| 宁安市| 房山区|