兼容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 数组的for循环到底应该怎么写?
May 31 Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
Mar 03 Javascript
jquery实现简单手风琴菜单效果实例
Jun 13 Javascript
谈谈Jquery中的children find 的区别有哪些
Oct 19 Javascript
JavaScript中的对象和原型(一)
Aug 12 Javascript
AngularJS开发教程之控制器之间的通信方法分析
Dec 25 Javascript
捕获未处理的Promise错误方法
Oct 13 Javascript
微信小程序表单验证功能完整实例
Dec 01 Javascript
angularJs中$http获取后台数据的实例讲解
Aug 08 Javascript
在Express中提供静态文件的实现方法
Oct 17 Javascript
微信小程序聊天功能的示例代码
Jan 13 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
Jul 31 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/12/25 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
2017/10/11 PHP
你需要知道的JavsScript可以做什么?
2007/06/29 Javascript
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
js中日期的加减法
2015/05/06 Javascript
jQuery页面加载初始化的3种方法(推荐)
2016/06/02 Javascript
如何在JS中实现相互转换XML和JSON
2016/07/19 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
2017/12/07 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
微信小程序异步API为Promise简化异步编程的操作方法
2018/08/14 Javascript
你了解vue3.0响应式数据怎么实现吗
2019/06/07 Javascript
Vue 实现从小到大的横向滑动效果详解
2019/10/16 Javascript
uni-app自定义导航栏按钮|uniapp仿微信顶部导航条功能
2019/11/12 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
Python的Django框架可适配的各种数据库介绍
2015/07/15 Python
Python模块包中__init__.py文件功能分析
2016/06/14 Python
python操作excel的包(openpyxl、xlsxwriter)
2018/06/11 Python
python将控制台输出保存至文件的方法
2019/01/07 Python
django 单表操作实例详解
2019/07/30 Python
css3实现背景模糊的三种方式(小结)
2020/05/15 HTML / CSS
美国豪华的多品牌精品店:The Webster
2019/07/31 全球购物
主治医师岗位职责
2013/12/10 职场文书
英语演讲稿范文
2014/01/03 职场文书
班主任工作年限证明
2014/01/12 职场文书
幼儿园门卫岗位职责
2014/02/14 职场文书
讲解员培训方案
2014/05/04 职场文书
供应链金融服务方案
2014/05/25 职场文书
国防教育标语
2014/10/08 职场文书
30岁前绝不能错过的10本书
2019/08/08 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书
Python趣味爬虫之用Python实现智慧校园一键评教
2021/05/28 Python
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP
如何判断pytorch是否支持GPU加速
2021/06/01 Python
MySQL 外键约束和表关系相关总结
2021/06/20 MySQL