兼容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俄罗斯方块,包含完整的设计理念
Dec 11 Javascript
jquery检测input checked 控件是否被选中的方法
Mar 26 Javascript
text-align:justify实现文本两端对齐 兼容IE
Aug 19 Javascript
jQuery实现form表单元素序列化为json对象的方法
Dec 09 Javascript
JS实现页面进入和返回定位到具体位置
Dec 08 Javascript
jQuery.cookie.js使用方法及相关参数解释
Mar 06 Javascript
AngularJS的脏检查深入分析
Apr 22 Javascript
Angular2.js实现表单验证详解
Jun 23 Javascript
浅谈Vue Element中Select下拉框选取值的问题
Mar 01 Javascript
vue小白入门教程
Apr 02 Javascript
Vue.js点击切换按钮改变内容的实例讲解
Aug 22 Javascript
JS实现打砖块游戏
Feb 14 Javascript
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将数组存储为文本文件方法汇总
2015/10/28 PHP
php通过header发送自定义数据方法
2018/01/18 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
JS日历 推荐
2006/12/03 Javascript
javaScript同意等待代码实现心得
2011/01/01 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
2014/02/11 Javascript
jQuery实现购物车多物品数量的加减+总价计算
2014/06/06 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
2014/12/15 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
JavaScript动态插入CSS的方法
2015/12/10 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
2016/10/10 Javascript
JS滚动到指定位置导航栏固定顶部
2017/07/03 Javascript
详解nodejs通过代理(proxy)发送http请求(request)
2017/09/22 NodeJs
使用Vue-cli 3.0搭建Vue项目的方法
2018/06/07 Javascript
mpvue写一个CPASS小程序的示例
2018/09/04 Javascript
开发用到的js封装方法(20种)
2018/10/12 Javascript
JS中超越现实的匿名函数用法实例分析
2019/06/21 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
JsonServer安装及启动过程图解
2020/02/28 Javascript
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
python sklearn常用分类算法模型的调用
2019/10/16 Python
python中删除某个元素的方法解析
2019/11/05 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
使用 Python 在京东上抢口罩的思路详解
2020/02/27 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
房地产出纳岗位职责
2013/12/01 职场文书
2014党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
教师党员群众路线教育实践活动心得体会
2014/11/04 职场文书
调解协议书范本
2016/03/21 职场文书
大学学生会主席竞选稿怎么写?
2019/08/19 职场文书
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python
python画条形图的具体代码
2022/04/20 Python
类和原型的设计模式之复制与委托差异
2022/07/07 Javascript