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+thickbox仿校内登录注册框
Jun 07 Javascript
jquery模拟按下回车实现代码
Sep 20 Javascript
提取字符串中年月日的函数代码
Nov 05 Javascript
jQuery实现网站添加高亮突出显示效果的方法
Jun 26 Javascript
AngularJS在IE8的不支持的解决方法
May 13 Javascript
js获取上传文件的绝对路径实现方法
Aug 02 Javascript
jQuery实现文字自动横移
Jan 08 Javascript
详解webpack 配合babel 将es6转成es5 超简单实例
May 02 Javascript
vue 2.0项目中如何引入element-ui详解
Sep 06 Javascript
vue.js项目中实用的小技巧汇总
Nov 29 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
Jun 18 Javascript
Vue路由管理器Vue-router的使用方法详解
Feb 05 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调用Twitter的RSS的实现代码
2010/03/10 PHP
array_multisort实现PHP多维数组排序示例讲解
2011/01/04 PHP
使用PHP实现二分查找算法代码分享
2011/06/24 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
2019/02/08 PHP
js图片实时加载提供网页打开速度
2014/09/11 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
JavaScript中循环遍历Array与Map的方法小结
2016/03/12 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
从零学习node.js之mysql数据库的操作(五)
2017/02/24 Javascript
Javascript仿京东放大镜的效果
2017/03/01 Javascript
使用jQuery.Pin垂直滚动时固定导航
2017/05/24 jQuery
详解VUE中常用的几种import(模块、文件)引入方式
2018/07/03 Javascript
JS加密插件CryptoJS实现的DES加密示例
2018/08/16 Javascript
React SSR样式及SEO的实践
2018/10/22 Javascript
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
vue子传父关于.sync与$emit的实现
2019/11/05 Javascript
vue 查看dist文件里的结构(多种方式)
2020/01/17 Javascript
纯JS开发baguetteBox.js响应式画廊插件
2020/06/28 Javascript
深入理解javascript中的this
2021/02/08 Javascript
python解析中国天气网的天气数据
2014/03/21 Python
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
Python选课系统开发程序
2016/09/02 Python
Django之模型层多表操作的实现
2019/01/08 Python
python+os根据文件名自动生成文本
2019/03/21 Python
python实现3D地图可视化
2020/03/25 Python
Python带参数的装饰器运行原理解析
2020/06/09 Python
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
Aerosoles爱柔仕官网:美国舒软女鞋品牌
2017/07/17 全球购物
卫校毕业生自我鉴定
2013/10/31 职场文书
企业军训感想
2014/02/07 职场文书
电气自动化专业职业规划范文
2014/02/16 职场文书
《绝招》教学反思
2016/02/20 职场文书
《狼牙山五壮士》读后感:宁死不屈,视死如归
2019/08/16 职场文书