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 相关文章推荐
使用jQuery的ajax功能实现的RSS Reader 代码
Sep 03 Javascript
jquery.validate使用攻略 第一部
Jul 01 Javascript
javascript实用小函数使用介绍
Nov 11 Javascript
js动态控制table的tr、td增加及删除的具体实现
Apr 30 Javascript
jQuery CSS()方法改变现有的CSS样式表
Sep 09 Javascript
Ajax局部更新导致JS事件重复触发问题的解决方法
Oct 14 Javascript
一步步教你利用webpack如何搭一个vue脚手架(超详细讲解和注释)
Jan 08 Javascript
使用veloticy-ui生成文字动画效果
Feb 08 Javascript
在Vue中使用Compass的方法
Mar 02 Javascript
详解从Vue-router到html5的pushState
Jul 21 Javascript
在vue中使用image-webpack-loader实例
Nov 12 Javascript
JavaScript获取URL参数的方法分享
Apr 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
PHP实现合并discuz用户
2015/08/05 PHP
php根据地址获取百度地图经纬度的实例方法
2019/09/03 PHP
javascript正则表达式中参数g(全局)的作用
2010/11/11 Javascript
ExtJS4 组件化编程,动态加载,面向对象,Direct
2011/05/12 Javascript
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
使用纯javascript实现经典扫雷游戏
2015/04/23 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
AngularJs Javascript MVC 框架
2016/06/20 Javascript
JS读写CSS样式的方法汇总
2016/08/16 Javascript
JS关闭窗口时产生的事件及用法示例
2016/08/20 Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
2016/09/28 Javascript
利用node.js制作命令行工具方法教程(一)
2017/06/22 Javascript
详解如何在nuxt中添加proxyTable代理
2018/08/10 Javascript
vue-cli 默认路由再子路由选中下的选中状态问题及解决代码
2018/09/06 Javascript
Angular8路由守卫原理和使用方法
2019/08/29 Javascript
[02:26]DOTA2英雄米拉娜基础教程
2013/11/25 DOTA
Python 2.7.x 和 3.x 版本的重要区别小结
2014/11/28 Python
在Python的setuptools框架下生成egg的教程
2015/04/13 Python
Python的Tornado框架异步编程入门实例
2015/04/24 Python
python开发之str.format()用法实例分析
2016/02/22 Python
python实现list由于numpy array的转换
2018/04/04 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
Python基于当前时间批量创建文件
2020/05/07 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
2020/06/02 Python
浅析Python 责任链设计模式
2020/09/11 Python
WSDL的操作类型主要有几种
2013/07/19 面试题
就业表自我评价分享
2014/02/06 职场文书
诉讼授权委托书范本
2014/10/05 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
作文评语怎么写
2014/12/25 职场文书
2015年酒店年度工作总结
2015/05/23 职场文书
大学开学典礼新闻稿
2015/07/17 职场文书
运动会跳远广播稿
2015/08/19 职场文书
七个Python必备的GUI库
2021/04/27 Python