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下查找父节点的简单方法
Aug 13 Javascript
将jQuery应用于login页面的问题及解决
Oct 17 Javascript
jQuery插件的写法分享
Jun 12 Javascript
javascript实现多级联动下拉菜单的方法
Feb 06 Javascript
easyui中combotree循环获取父节点至根节点并输出路径实现方法
Nov 10 Javascript
简单谈谈ES6的六个小特性
Nov 18 Javascript
JavaScript数据结构之二叉树的删除算法示例
Apr 13 Javascript
微信小程序支付之c#后台实现方法
Oct 19 Javascript
Angularjs实现多图片上传预览功能
Jul 18 Javascript
深入理解Angularjs 脏值检测
Oct 12 Javascript
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
May 03 Javascript
如何基于原生javaScript生成带图片的二维码
Nov 21 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 REMOTE_ADDR之获取访客IP的代码
2008/04/22 PHP
Google Voice 短信发送接口PHP开源版(2010.5更新)
2010/07/22 PHP
php 短链接算法收集与分析
2011/12/30 PHP
php学习之function的用法
2012/07/14 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
2014/06/09 PHP
php中静态类与静态变量用法的区别分析
2015/01/15 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
php实现的XML操作(读取)封装类完整实例
2017/02/23 PHP
PHP读取目录树的实现方法分析
2019/03/22 PHP
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
jquery form表单获取内容以及绑定数据
2016/02/24 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
2016/09/09 Javascript
angularjs的select使用及默认选中设置
2017/04/08 Javascript
js上传图片预览的实现方法
2017/05/09 Javascript
JS关于刷新页面的相关总结
2018/05/09 Javascript
javascript中的数据类型检测方法详解
2019/08/07 Javascript
浅谈vue项目用到的mock数据接口的两种方式
2019/10/09 Javascript
JavaScript 如何在浏览器中使用摄像头
2020/12/02 Javascript
用Javascript实现发送短信验证码间隔功能
2021/02/08 Javascript
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
python使用正则表达式替换匹配成功的组并输出替换的次数
2017/11/22 Python
python使用PIL实现多张图片垂直合并
2019/01/15 Python
python简单区块链模拟详解
2019/07/03 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
浅析PEP572: 海象运算符
2019/10/15 Python
用python画一只可爱的皮卡丘实例
2019/11/21 Python
Django 5种类型Session使用方法解析
2020/04/29 Python
英国领先的隐形眼镜在线供应商:Lenstore.co.uk
2019/11/24 全球购物
世界上最好的野生海鲜和有机食品:Vital Choice
2020/01/16 全球购物
捐资助学倡议书
2014/04/15 职场文书
2015新年寄语大全
2014/12/08 职场文书
婚宴致辞
2015/07/28 职场文书
2016国培学习心得体会
2016/01/08 职场文书
2020优秀员工演讲稿(三篇)
2019/10/17 职场文书
Python torch.flatten()函数案例详解
2021/08/30 Python
vue 自定义组件添加原生事件
2022/04/21 Vue.js