兼容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的MessageBox
Dec 03 Javascript
jquery+json实现数据列表分页示例代码
Nov 15 Javascript
浅谈javascript中this在事件中的应用
Feb 15 Javascript
在AngularJS中如何使用谷歌地图把当前位置显示出来
Jan 25 Javascript
BootStrap文件上传样式超好看【持续更新】
May 10 Javascript
angular+ionic 的app上拉加载更新数据实现方法
Jan 16 Javascript
angular动态删除ng-repaeat添加的dom节点的方法
Jul 20 Javascript
Bootstrap Table 搜索框和查询功能
Nov 30 Javascript
Vue中v-for的数据分组实例
Mar 07 Javascript
小程序scroll-view安卓机隐藏横向滚动条的实现详解
May 16 Javascript
javascript 设计模式之组合模式原理与应用详解
Apr 08 Javascript
jQuery使用jsonp实现百度搜索的示例代码
Jul 08 jQuery
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
模拟OICQ的实现思路和核心程序(二)
2006/10/09 PHP
PHP中header和session_start前不能有输出原因分析
2013/01/11 PHP
php gzip压缩输出的实现方法
2013/04/27 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
2014/06/22 PHP
PHP+Mysql无刷新问答评论系统(源码)
2016/12/20 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
JQuery的一些小应用收集
2010/03/27 Javascript
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
JavaScript中ES6字符串扩展方法
2016/08/26 Javascript
Require.js的基本用法详解
2017/07/03 Javascript
Vue.js 点击按钮显示/隐藏内容的实例代码
2018/02/08 Javascript
vue中使用props传值的方法
2019/05/08 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
2019/08/20 Javascript
js判断复选框是否选中的方法示例【基于jQuery】
2019/10/10 jQuery
JS猜数字游戏实例讲解
2020/06/30 Javascript
[03:38]2014DOTA2西雅图国际邀请赛 VG战队巡礼
2014/07/07 DOTA
详解Python中内置的NotImplemented类型的用法
2015/03/31 Python
浅析Python的web.py框架中url的设定方法
2016/07/11 Python
一个基于flask的web应用诞生 组织结构调整(7)
2017/04/11 Python
Django之编辑时根据条件跳转回原页面的方法
2019/08/21 Python
django 多数据库及分库实现方式
2020/04/01 Python
Python基于yaml文件配置logging日志过程解析
2020/06/23 Python
一文解决django 2.2与mysql兼容性问题
2020/07/15 Python
Python自动化测试基础必备知识点总结
2021/02/07 Python
HTML4和HTML5之间除了相似以外的10个主要不同
2012/12/13 HTML / CSS
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
2013/01/09 HTML / CSS
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
大学生自我鉴定范文
2013/12/28 职场文书
大学生入党思想汇报
2014/01/01 职场文书
大学生自我鉴定书
2014/03/24 职场文书
幼儿园家长评语大全
2014/04/16 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
责任书范本
2014/08/25 职场文书
2015年党员自评材料
2014/12/17 职场文书
初中运动会前导词
2015/07/20 职场文书