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 相关文章推荐
Javascript的数组与字典用法与遍历对象的属性技巧
Nov 07 Javascript
Jquery为单选框checkbox绑定单击click事件
Dec 18 Javascript
使用javascript实现判断当前浏览器
Apr 14 Javascript
JavaScript 对象详细整理总结
Sep 29 Javascript
ES6新数据结构Set与WeakSet用法分析
Mar 31 Javascript
最简单的JS实现json转csv的方法
Jan 10 Javascript
详解基于node.js的脚手架工具开发经历
Jan 28 Javascript
javascript 内存模型实例详解
Apr 18 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
Apr 26 Javascript
three.js 利用uv和ThreeBSP制作一个快递柜功能
Aug 18 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
Sep 04 Javascript
用JS写一个发布订阅模式
Nov 07 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
PHP3 safe_mode 失效漏洞
2006/10/09 PHP
PHP中的正规表达式(二)
2006/10/09 PHP
深入理解PHP之数组(遍历顺序)  Laruence原创
2012/06/13 PHP
基于PHP遍历数组的方法汇总分析
2013/06/08 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
php报错502badgateway解决方法
2019/10/11 PHP
JS option location 页面跳转实现代码
2008/12/27 Javascript
JavaScript库 开发规则
2009/01/31 Javascript
jquery中:input和input的区别分析
2011/07/13 Javascript
js 获取后台的字段 改变 checkbox的被选中的状态 代码
2013/06/05 Javascript
Javascript中浮点数相乘的一个解决方法
2014/06/03 Javascript
Node.js中使用计时器定时执行函数详解
2014/08/15 Javascript
在JavaScript中处理时间之getHours()方法的使用
2015/06/10 Javascript
jQuery里filter()函数与find()函数用法分析
2015/06/24 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
bootstrap 通过加减按钮实现输入框组功能
2017/11/15 Javascript
利用canvas中toDataURL()将图片转为dataURL(base64)的方法详解
2017/11/20 Javascript
vue实现键盘输入支付密码功能
2018/08/18 Javascript
JavaScript继承的特性与实践应用深入详解
2018/12/30 Javascript
基于vue项目设置resolves.alias: '@'路径并适配webstorm
2020/12/02 Vue.js
[04:40]DOTA2-DPC中国联赛1月26日Recap集锦
2021/03/11 DOTA
python 网络编程常用代码段
2016/08/28 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
Python3 SSH远程连接服务器的方法示例
2018/12/29 Python
Python如何获取Win7,Win10系统缩放大小
2020/01/10 Python
python中os包的用法
2020/06/01 Python
python爬虫请求头设置代码
2020/07/28 Python
Python 高效编程技巧分享
2020/09/10 Python
印度在线购买电子产品网站:Croma
2020/01/02 全球购物
消防安全宣传口号
2014/06/10 职场文书
优秀教师先进个人事迹材料
2014/08/31 职场文书
2015年酒店前台工作总结
2015/04/20 职场文书
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python
Node与Python 双向通信的实现代码
2021/07/16 Javascript
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
2022/03/03 Python