兼容IE和FF的图片上传前预览js代码


Posted in Javascript onMay 28, 2013

效果图如下:
兼容IE和FF的图片上传前预览js代码 
代码如下:

<!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> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>本地图片预览</title> 
<style type="text/css"> 
#preview{width:100px;height:100px;border:1px solid #000;overflow:hidden;} 
#imghead {filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);} 
</style> 
<script type="text/javascript"> 
function previewImage(file) 
{ 
var MAXWIDTH = 100; 
var MAXHEIGHT = 100; 
var div = document.getElementById('preview'); 
if (file.files && file.files[0]) 
{ 
div.innerHTML = '<img id=imghead>'; 
var img = document.getElementById('imghead'); 
img.onload = function(){ 
var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight); 
img.width = rect.width; 
img.height = rect.height; 
img.style.marginLeft = rect.left+'px'; 
img.style.marginTop = rect.top+'px'; 
} 
var reader = new FileReader(); 
reader.onload = function(evt){img.src = evt.target.result;} 
reader.readAsDataURL(file.files[0]); 
} 
else 
{ 
var sFilter='filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src="'; 
file.select(); 
var src = document.selection.createRange().text; 
div.innerHTML = '<img id=imghead>'; 
var img = document.getElementById('imghead'); 
img.filters.item('DXImageTransform.Microsoft.AlphaImageLoader').src = src; 
var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight); 
status =('rect:'+rect.top+','+rect.left+','+rect.width+','+rect.height); 
div.innerHTML = "<div id=divhead style='width:"+rect.width+"px;height:"+rect.height+"px;margin-top:"+rect.top+"px;margin-left:"+rect.left+"px;"+sFilter+src+"\"'></div>"; 
} 
} 
function clacImgZoomParam( maxWidth, maxHeight, width, height ){ 
var param = {top:0, left:0, width:width, height:height}; 
if( width>maxWidth || height>maxHeight ) 
{ 
rateWidth = width / maxWidth; 
rateHeight = height / maxHeight; if( rateWidth > rateHeight ) 
{ 
param.width = maxWidth; 
param.height = Math.round(height / rateWidth); 
}else 
{ 
param.width = Math.round(width / rateHeight); 
param.height = maxHeight; 
} 
} 
param.left = Math.round((maxWidth - param.width) / 2); 
param.top = Math.round((maxHeight - param.height) / 2); 
return param; 
} 
</script> 
</head> 
<body> 
<div id="preview"> 
<img id="imghead" width=100 height=100 border=0 src='../images/head01_big.jpg'> 
</div> 
<br/> 
<input type="file" onchange="previewImage(this)" /> 
</body> 
</html>
Javascript 相关文章推荐
用JS写的一个TableView控件代码
Jan 23 Javascript
Javascript算符的优先级介绍
Mar 20 Javascript
jquery live()调用不存在的解决方法
Feb 26 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
Aug 10 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
Feb 23 Javascript
jquery实现未经美化的简洁TAB菜单效果
Aug 28 Javascript
BootStrap轮播HTML代码(推荐)
Dec 10 Javascript
js仿新浪微博消息发布功能
Feb 17 Javascript
JS分页的实现(同步与异步)
Sep 16 Javascript
vue 对象添加或删除成员时无法实时更新的解决方法
May 01 Javascript
nuxt.js写项目时增加错误提示页面操作
Nov 05 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
Dec 14 Vue.js
Extjs中ComboBoxTree实现的下拉框树效果(自写)
May 28 #Javascript
jQuery实现可拖动的浮动层完整代码
May 27 #Javascript
Jquery实现视频播放页面的关灯开灯效果
May 27 #Javascript
jquery scrollTop方法根据滚动像素显示隐藏顶部导航条
May 27 #Javascript
jquery实现的可隐藏重现的靠边悬浮层实例代码
May 27 #Javascript
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
May 27 #Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
May 27 #Javascript
You might like
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
CodeIgniter框架URL路由总结
2014/09/03 PHP
thinkphp实现上一篇与下一篇的方法
2014/12/08 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
php正则表达式基本知识与应用详解【经典教程】
2017/04/17 PHP
Django 中 cookie的使用
2017/08/17 PHP
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
javascript 表格排序和表头浮动效果(扩展SortTable)
2009/04/07 Javascript
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
js中 javascript:void(0) 用法详解
2015/08/11 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
javascript鼠标右键菜单自定义效果
2020/12/08 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
three.js中文文档学习之创建场景
2017/11/20 Javascript
解决Mac下安装nmp的淘宝镜像失败问题
2018/05/16 Javascript
vue实现文件上传功能
2018/08/13 Javascript
vue首次赋值不触发watch的解决方法
2018/09/11 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
用Vue.js方法创建模板并使用多个模板合成
2019/06/28 Javascript
react PropTypes校验传递的值操作示例
2020/04/28 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
vue中如何自定义右键菜单详解
2020/12/08 Vue.js
[01:19:54]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#1Alliance VS EHOME
2016/03/03 DOTA
最大K个数问题的Python版解法总结
2016/06/16 Python
python-str,list,set间的转换实例
2018/06/27 Python
pycharm使用matplotlib.pyplot不显示图形的解决方法
2018/10/28 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
Pandas0.25来了千万别错过这10大好用的新功能
2019/08/07 Python
乌克兰香水和化妆品网站:Notino.ua
2018/03/26 全球购物
美国医生配方营养补充剂供应商:Healthy Directions
2019/07/10 全球购物
机电专业毕业生推荐信
2013/11/10 职场文书
员工晚婚的请假条
2014/02/08 职场文书
学习礼仪心得体会
2014/09/01 职场文书
酒店采购员岗位职责
2015/04/03 职场文书