兼容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 相关文章推荐
thinkphp 表名 大小写 窍门
Feb 01 Javascript
谷歌Chrome浏览器扩展程序开发小记
Jan 06 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
Jun 28 Javascript
AngularJS过滤器filter用法实例分析
Nov 04 Javascript
jQuery Password Validation密码验证
Dec 30 Javascript
分分钟玩转Vue.js组件(二)
Mar 01 Javascript
vue 通过下拉框组件学习vue中的父子通讯
Dec 19 Javascript
Angular 如何使用第三方库的方法
Apr 18 Javascript
对angularJs中自定义指令replace的属性详解
Oct 09 Javascript
vue组件间的参数传递实例详解
Apr 26 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
Sep 27 Javascript
基于JavaScript实现随机点名器
Feb 25 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
重料打造自己的“宝马”---第三代
2021/03/02 无线电
建立文件交换功能的脚本(一)
2006/10/09 PHP
php trim 去除空字符的定义与语法介绍
2010/05/31 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
PHP设置一边执行一边输出结果的代码
2013/09/30 PHP
yii实现CheckBox复选框在同一行显示的方法
2014/12/03 PHP
PDO::query讲解
2019/01/29 PHP
javascript新手语法小结
2008/06/15 Javascript
游览器中javascript的执行过程(图文)
2012/05/20 Javascript
jquery 淡入淡出效果的简单实现
2014/02/07 Javascript
浅谈javascript中的闭包
2015/05/13 Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
2016/09/28 Javascript
jQuery滚动监听实现商城楼梯式导航效果
2017/03/06 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
JS简单封装的图片无缝滚动效果示例【测试可用】
2017/03/22 Javascript
vue-router 中router-view不能渲染的解决方法
2017/05/23 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
在Python中调用ggplot的三种方法
2015/04/08 Python
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
python实现决策树分类算法
2017/12/21 Python
Python 获得命令行参数的方法(推荐)
2018/01/24 Python
Python Grid使用和布局详解
2018/06/30 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
Giglio英国站:意大利奢侈品购物网
2018/03/06 全球购物
财务管理专业应届毕业生求职信
2013/09/22 职场文书
领导调研接待方案
2014/02/27 职场文书
工程售后服务方案
2014/06/08 职场文书
群众路线领导对照材料
2014/08/23 职场文书
2014年国庆节演讲稿
2014/09/19 职场文书
学习教师敬业奉献模范事迹材料思想汇报
2014/09/19 职场文书
学习党的群众路线剖析材料
2014/10/09 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
中学感恩教育活动总结
2015/05/05 职场文书
Go语言基础切片的创建及初始化示例详解
2021/11/17 Golang
Python 居然可以在 Excel 中画画你知道吗
2022/02/15 Python