兼容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 相关文章推荐
Jquery cookie操作代码
Mar 14 Javascript
jquery ui dialog ie8出现滚动条的解决方法
Dec 06 Javascript
jquery实现鼠标拖动图片效果示例代码
Jan 09 Javascript
javascript实现的元素拖动函数宿主为浏览器
Jul 21 Javascript
node.js中的fs.truncateSync方法使用说明
Dec 15 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
Jan 08 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
May 26 Javascript
jquery仿京东商品放大浏览页面
Jun 06 jQuery
Vue组件之全局组件与局部组件的使用详解
Oct 09 Javascript
判断iOS、Android以及PC端的示例代码
Nov 15 Javascript
解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题
Jul 24 Javascript
nuxt引入组件和公共样式的操作
Nov 05 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
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
2019/05/25 PHP
浅谈laravel-admin的sortable和orderby使用问题
2019/10/03 PHP
Laravel服务容器绑定的几种方法总结
2020/06/14 PHP
Firebug 字幕文件JSON地址获取代码
2009/10/28 Javascript
javascript dom 基本操作小结
2010/04/11 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
Javascript技术难点之apply,call与this之间的衔接
2015/12/04 Javascript
JS中改变this指向的方法(call和apply、bind)
2016/03/26 Javascript
Bootstrap表格和栅格分页实例详解
2016/05/20 Javascript
DOM操作和jQuery实现选项移动操作的简单实例
2016/06/07 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
利用js获取下拉框中所选的值
2016/12/01 Javascript
微信小程序实现手势图案锁屏功能
2018/01/30 Javascript
jquery radio 动态控制选中失效问题的解决方法
2018/02/28 jQuery
vue2.0+koa2+mongodb实现注册登录
2018/04/10 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
Python基类函数的重载与调用实例分析
2015/01/12 Python
python快速建立超简单的web服务器的实现方法
2018/02/17 Python
基于Python中numpy数组的合并实例讲解
2018/04/04 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
Jupyter notebook 远程配置及SSL加密教程
2020/04/14 Python
python+adb+monkey实现Rom稳定性测试详解
2020/04/23 Python
Python字节单位转换(将字节转换为K M G T)
2021/03/02 Python
英国邮购活的植物主要供应商:Gardening Direct
2019/01/28 全球购物
一道Delphi上机题
2012/06/04 面试题
工程造价专业大学生自荐信
2013/10/01 职场文书
简历中求职的个人自我评价
2013/12/03 职场文书
优良学风班总结材料
2014/02/08 职场文书
幼儿园中班教学反思
2014/02/10 职场文书
服装促销活动方案
2014/02/23 职场文书
国庆宣传标语
2014/06/30 职场文书
党员干部群众路线个人整改措施
2014/09/18 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
个人自我鉴定怎么写?
2019/07/01 职场文书
SSM VUE Axios详解
2021/10/05 Vue.js
Java实现给Word文件添加文字水印
2022/02/15 Java/Android