js上传图片预览的实现方法


Posted in Javascript onMay 09, 2017

本文实例为大家分享了js上传图片预览的方法,供大家参考,具体内容如下

<html >

<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<title>图片上传本地预览</title>  
<style type="text/css">
#preview{width:260px;height:190px;border:1px solid #000;overflow:hidden;}
#imghead {filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);}
</style>
<script type="text/javascript">


    //图片上传预览 IE是用了滤镜。
  function previewImage(file)
  {
   var MAXWIDTH = 260; 
   var MAXHEIGHT = 180;
   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 //兼容IE
   {
   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;"+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='<%=request.getContextPath()%>/images/defaul.jpg'>
</div>


 <input type="file" onchange="previewImage(this)" />  
</body>  
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Mootools 1.2教程 滚动条(Slider)
Sep 15 Javascript
离开页面时检测表单元素是否被修改,提示保存的js代码
Aug 25 Javascript
js 遍历对象的属性的代码
Dec 29 Javascript
密码强度检测效果实现原理与代码
Jan 04 Javascript
Node.js 制作实时多人游戏框架
Jan 08 Javascript
JavaScript 学习笔记之变量及其作用域
Jan 14 Javascript
简单实现JS对dom操作封装
Dec 02 Javascript
原生JS实现首页进度加载动画
Sep 14 Javascript
JS实现滑动门效果的方法详解
Dec 19 Javascript
利用Ionic2 + angular4实现一个地区选择组件
Jul 27 Javascript
layer插件select选中默认值的方法
Aug 14 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
Nov 05 Javascript
react开发中如何使用require.ensure加载es6风格的组件
May 09 #Javascript
Vue2单一事件管理组件通信
May 09 #Javascript
react-router实现按需加载
May 09 #Javascript
BootStrap表单时间选择器详解
May 09 #Javascript
兼容浏览器的js事件绑定函数(详解)
May 09 #Javascript
JS触摸与手势事件详解
May 09 #Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
May 09 #Javascript
You might like
基于wordpress主题制作的具体实现步骤
2013/05/10 PHP
php使用cookie保存用户登录的用户名实例
2015/01/26 PHP
PHP实现的json类实例
2015/07/28 PHP
北京奥运官方网站幻灯切换效果flash版打包下载
2008/01/30 Javascript
javascript背投广告代码的完善
2008/04/08 Javascript
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
详解JavaScript的Polymer框架中的通知交互
2015/07/29 Javascript
jQuery实现Tab选项卡切换效果简单演示
2015/11/23 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
js判断文本框输入的内容是否为数字
2015/12/23 Javascript
Javascript原型链的原理详解
2016/01/05 Javascript
原生JS实现平滑回到顶部组件
2016/03/16 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
jQuery实现淡入淡出的模态框
2017/02/09 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
jQuery实现碰到边缘反弹的动画效果
2018/02/24 jQuery
nodejs中实现用户注册路由功能
2019/05/20 NodeJs
vue实现axios图片上传功能
2019/08/20 Javascript
Angular8路由守卫原理和使用方法
2019/08/29 Javascript
从Node.js事件触发器到Vue自定义事件的深入讲解
2020/06/26 Javascript
python列表操作使用示例分享
2014/02/21 Python
Python lambda表达式用法实例分析
2018/12/25 Python
Selenium使用Chrome模拟手机浏览器方法解析
2020/04/10 Python
python操作toml文件的示例代码
2020/11/27 Python
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
岗位职责定义及内容
2013/11/08 职场文书
大学自我鉴定范文
2013/12/26 职场文书
建筑结构施工求职信
2014/07/11 职场文书
学校2014重阳节活动策划方案
2014/09/16 职场文书
群众路线剖析材料
2014/09/30 职场文书
单方离婚协议书范本(2014版)
2014/09/30 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
毕业设计致谢语
2015/05/14 职场文书
大学生就业指导课心得体会
2016/01/15 职场文书
餐饮行业关注的9大营销策略
2019/08/26 职场文书
mysql分表之后如何平滑上线详解
2021/11/01 MySQL