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控制iframe滚动的代码
Apr 10 Javascript
Javascript 同时提交多个Web表单的方法
Feb 19 Javascript
jQuery点击弹出下拉菜单的小例子
Aug 01 Javascript
Javascript模块化编程详解
Dec 01 Javascript
纯JS前端实现分页代码
Jun 21 Javascript
用JS实现简单的登录验证功能
Jul 28 Javascript
js防刷新的倒计时代码 js倒计时代码
Sep 06 Javascript
javascript显示动态时间的方法汇总
Jul 06 Javascript
在VUE中实现文件下载并判断状态的方法
Nov 08 Javascript
JS如何生成随机验证码
Mar 02 Javascript
vue data变量相互赋值后被实时同步的解决步骤
Aug 05 Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
Nov 04 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 Mssql操作简单封装支持存储过程
2009/12/11 PHP
PHP curl模拟浏览器采集阿里巴巴的实现代码
2011/04/20 PHP
自定义session存储机制避免会话保持问题
2014/10/08 PHP
php程序总是提示验证码输入有误解决方案
2015/01/07 PHP
php自定义类fsocket模拟post或get请求的方法
2015/07/31 PHP
PHP单例模式数据库连接类与页面静态化实现方法
2019/03/20 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
页面中iframe相互传值传参
2009/12/13 Javascript
现代 JavaScript 开发编程风格Idiomatic.js指南中文版
2014/05/28 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
jQuery实现简单隔行变色的方法
2016/02/20 Javascript
bootstrap按钮插件(Button)使用方法解析
2017/01/13 Javascript
详解Angular Reactive Form 表单验证
2017/07/06 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
nodejs实现截取上传视频中一帧作为预览图片
2017/12/10 NodeJs
jquery根据name取得select选中的值实例(超简单)
2018/01/25 jQuery
JS字符串和数组如何实现相互转化
2020/07/02 Javascript
跟老齐学Python之再深点,更懂list
2014/09/20 Python
使用Python编写Linux系统守护进程实例
2015/02/03 Python
全面了解Python环境配置及项目建立
2016/06/30 Python
python基础教程之匿名函数lambda
2017/01/17 Python
python反编译学习之字节码详解
2019/05/19 Python
python交易记录整合交易类详解
2019/07/03 Python
python 默认参数相关知识详解
2019/09/18 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
python用pip install时安装失败的一系列问题及解决方法
2020/02/24 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
澳大利亚礼品篮网站:Macarthur Baskets
2019/10/14 全球购物
高中生校园生活自我评价
2013/09/19 职场文书
公司财务总监岗位职责
2013/12/14 职场文书
小学生综合素质评语
2014/04/23 职场文书
委托书如何写
2014/08/30 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
师德师风事迹材料
2014/12/20 职场文书
应急管理工作总结2015
2015/05/04 职场文书