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 相关文章推荐
js同时按下两个方向键
Dec 01 Javascript
javascript 冒号 使用说明
Jun 06 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
Oct 21 Javascript
jQuery取得iframe中元素的常用方法详解
Jan 14 Javascript
jquery插件之文字间歇自动向上滚动效果代码
Feb 25 Javascript
jQuery中Ajax全局事件引用方式及各个事件(全局/局部)执行顺序
Jun 02 Javascript
浅析BootStrap中Modal(模态框)使用心得
Dec 24 Javascript
关于TypeScript中import JSON的正确姿势详解
Jul 25 Javascript
Canvas放置反弹效果随机图形(实例)
Aug 17 Javascript
利用node实现一个批量重命名文件的函数
Dec 21 Javascript
深入了解JavaScript 私有化
May 30 Javascript
小程序Request的另类用法详解
Aug 09 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
如何确保JavaScript的执行顺序 之实战篇
2011/03/03 Javascript
jQuery新闻滚动插件 jquery.roller.js
2011/06/27 Javascript
javascript文件加载管理简单实现方法
2015/07/25 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
2016/01/19 Javascript
浅谈$('div a') 与$('div&gt;a')的区别
2016/07/18 Javascript
javascript-解决mongoose数据查询的异步操作
2016/12/22 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
JavaScript累加、迭代、穷举、递归等常用算法实例小结
2018/05/08 Javascript
微信小程序收藏功能的实现代码
2018/06/12 Javascript
nodejs log4js 使用详解
2019/05/31 NodeJs
vue使用微信JS-SDK实现分享功能
2019/08/23 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
python自动化脚本安装指定版本python环境详解
2017/09/14 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
2018/01/30 Python
对Python字符串中的换行符和制表符介绍
2018/05/03 Python
Numpy 改变数组维度的几种方法小结
2018/08/02 Python
Python实现某论坛自动签到功能
2019/08/20 Python
详解pandas获取Dataframe元素值的几种方法
2020/06/14 Python
Python csv文件记录流程代码解析
2020/07/16 Python
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
html5实现多文件的上传示例代码
2014/02/13 HTML / CSS
VC++笔试题
2014/10/13 面试题
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
J2EE面试题集锦(附答案)
2013/08/16 面试题
列车长先进事迹材料
2014/01/25 职场文书
大学毕业感言50字
2014/02/07 职场文书
军训学生自我鉴定
2014/02/12 职场文书
业务内勤岗位职责
2014/04/30 职场文书
市政管理求职信范文
2014/05/07 职场文书
2014县政府领导班子三严三实对照检查材料思想汇报
2014/09/26 职场文书
学习党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
2015年技术员工作总结
2015/04/10 职场文书
迎新晚会主持词开场白
2015/05/28 职场文书
Jupyter notebook 不自动弹出网页的解决方案
2021/05/21 Python
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python