jquery 图片上传按比例预览插件集合


Posted in Javascript onMay 28, 2011

js部分是这样的:

//**********************图片上传预览插件************************ 
//作者:IDDQD(2009-07-01) 
//Email:iddqd5376@163.com 
//http://blog.sina.com.cn/iddqd 
//版本:1.0 //说明:图片上传预览插件 
//上传的时候可以生成固定宽高范围内的等比例缩放图 
//参数设置: 
//width 存放图片固定大小容器的宽 
//height 存放图片固定大小容器的高 
//imgDiv 页面DIV的JQuery的id 
//imgType 数组后缀名 
//**********************图片上传预览插件************************* 
(function($) { 
jQuery.fn.extend({ 
uploadPreview: function(opts) { 
opts = jQuery.extend({ 
width: 0, 
height: 0, 
imgDiv: "#imgDiv", 
imgType: ["gif", "jpeg", "jpg", "bmp", "png"], 
callback: function() { return false; } 
}, opts || {}); 
var _self = this; 
var _this = $(this); 
var imgDiv = $(opts.imgDiv); 
imgDiv.width(opts.width); 
imgDiv.height(opts.height); 
autoScaling = function() { 
if ($.browser.version == "7.0" || $.browser.version == "8.0") imgDiv.get(0).filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = "image"; 
var img_width = imgDiv.width(); 
var img_height = imgDiv.height(); 
if (img_width > 0 && img_height > 0) { 
var rate = (opts.width / img_width < opts.height / img_height) ? opts.width / img_width : opts.height / img_height; 
if (rate <= 1) { 
if ($.browser.version == "7.0" || $.browser.version == "8.0") imgDiv.get(0).filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = "scale"; 
imgDiv.width(img_width * rate); 
imgDiv.height(img_height * rate); 
} else { 
imgDiv.width(img_width); 
imgDiv.height(img_height); 
} 
var left = (opts.width - imgDiv.width()) * 0.5; 
var top = (opts.height - imgDiv.height()) * 0.5; 
imgDiv.css({ "margin-left": left, "margin-top": top }); 
imgDiv.show(); 
} 
} 
_this.change(function() { 
if (this.value) { 
if (!RegExp("\.(" + opts.imgType.join("|") + ")$", "i").test(this.value.toLowerCase())) { 
alert("图片类型必须是" + opts.imgType.join(",") + "中的一种"); 
this.value = ""; 
return false; 
} 
imgDiv.hide(); 
if ($.browser.msie) { 
if ($.browser.version == "6.0") { 
var img = $("<img />"); 
imgDiv.replaceWith(img); 
imgDiv = img; 
var image = new Image(); 
image.src = 'file:///' + this.value; 
imgDiv.attr('src', image.src); 
autoScaling(); 
} 
else { 
imgDiv.css({ filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image)" }); 
imgDiv.get(0).filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = "image"; 
try { 
imgDiv.get(0).filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = this.value; 
} catch (e) { 
alert("无效的图片文件!"); 
return; 
} 
setTimeout("autoScaling()", 100); 
} 
} 
else { 
var img = $("<img />"); 
imgDiv.replaceWith(img); 
imgDiv = img; 
imgDiv.attr('src', this.files.item(0).getAsDataURL()); 
imgDiv.css({ "vertical-align": "middle" }); 
setTimeout("autoScaling()", 100); 
} 
} 
}); 
} 
}); 
})(jQuery);

页面部分:
<!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 runat="server"> 
<title></title> 
<meta content="" name="Keywords" /> 
<meta content="" name="Description" /> 
<meta content="text/html;charset=utf-8" http-equiv="Content-Type" /> 
<script type="text/javascript" src="js/jquery.pack.js"></script> 
<script type="text/javascript" src="js/uploadPreview/jquery.uploadPreview.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
//建议在#imgDiv的父元素上加个overflow:hidden;的css样式 
$("input").uploadPreview({ width: 200, height: 200, imgDiv: "#imgDiv", imgType: ["bmp", "gif", "png", "jpg"] }); 
}); 
</script> 
</head> 
<body> 
<form id="form1" runat="server"> 
<input type="file" /> 
<br /> 
<div style="width: 200px; height: 200px; overflow: hidden; border: 1px solid red;"> 
<div id="imgDiv"> 
</div> 
</div> 
</form> 
</body> 
</html>
Javascript 相关文章推荐
2010年最佳jQuery插件整理
Dec 06 Javascript
jQuery客户端分页实例代码
Nov 18 Javascript
js实现表单Radio切换效果的方法
Aug 17 Javascript
基于Jquery实现万圣节快乐特效
Nov 01 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
Feb 20 Javascript
vue-resource拦截器设置头信息的实例
Oct 27 Javascript
React Native使用百度Echarts显示图表的示例代码
Nov 07 Javascript
js计算两个日期间的天数月的实例代码
Sep 20 Javascript
在axios中使用params传参的时候传入数组的方法
Sep 25 Javascript
Vue 动态组件与 v-once 指令的实现
Feb 12 Javascript
js刷新页面location.reload()用法详解
Dec 09 Javascript
浅析JS中NEW的实现原理及重写
Feb 20 Javascript
使用jquery实现select添加实现后台权限添加的效果
May 28 #Javascript
jQuery 源码分析笔记(2) 变量列表
May 28 #Javascript
Jquery下:nth-child(an+b)的使用注意
May 28 #Javascript
鼠标滑上去后图片放大浮出效果的js代码
May 28 #Javascript
js原生态函数中使用jQuery中的 $(this)无效的解决方法
May 25 #Javascript
actionscript与javascript的区别
May 25 #Javascript
使用javascript获取flash加载的百分比的实现代码
May 25 #Javascript
You might like
php获取当月最后一天函数分享
2015/02/02 PHP
yii实现使用CUploadedFile上传文件的方法
2015/12/28 PHP
详解PHP中的8个魔术常量
2020/07/06 PHP
Jquery命名冲突解决的五种方案分享
2012/03/16 Javascript
JQueryEasyUI datagrid框架的进阶使用
2013/04/08 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
使用JQuery 加载页面时调用JS的实现方法
2016/05/30 Javascript
jQuery给指定的table动态添加删除行的操作方法
2016/10/12 Javascript
浅谈Angular中ngModel的$render
2016/10/24 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
angular中的cookie读写方法
2017/08/02 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
基于React Native 0.52实现轮播图效果
2020/08/25 Javascript
Vue props中Object和Array设置默认值操作
2020/07/30 Javascript
python中urllib.unquote乱码的原因与解决方法
2017/04/24 Python
Python实现输出某区间范围内全部素数的方法
2018/05/02 Python
Python实现通过继承覆盖方法示例
2018/07/02 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
详解Python文件修改的两种方式
2019/08/22 Python
python rsync服务器之间文件夹同步脚本
2019/08/29 Python
Python高级property属性用法实例分析
2019/11/19 Python
利用Python计算KS的实例详解
2020/03/03 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
Python坐标轴操作及设置代码实例
2020/06/04 Python
关于Python字符编码与二进制不得不说的一些事
2020/10/04 Python
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
前端面试必备之html5的新特性
2017/09/05 HTML / CSS
英国领先的珍珠首饰品牌:Orchira
2016/09/11 全球购物
TripAdvisor越南:全球领先的旅游网站
2017/09/21 全球购物
酒店保安领班职务说明书
2014/03/04 职场文书
共产党员公开承诺书
2014/03/25 职场文书
优秀乡村医生先进事迹材料
2014/08/23 职场文书
先进典型事迹材料
2014/12/29 职场文书
初中教务主任竞聘演讲稿(范文)
2019/08/20 职场文书
Java线程的6种状态与生命周期
2022/05/11 Java/Android