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 相关文章推荐
如何在标题栏显示框架内页面的标题
Feb 03 Javascript
JavaScript Event学习第四章 传统的事件注册模型
Feb 07 Javascript
js树插件zTree获取所有选中节点数据的方法
Jan 28 Javascript
jquery实现仿新浪微博带动画效果弹出层代码(可关闭、可拖动)
Oct 12 Javascript
解决angular的$http.post()提交数据时后台接收不到参数值问题的方法
Dec 10 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
Apr 23 Javascript
HTML5+jQuery实现搜索智能匹配功能
Mar 24 jQuery
微信小程序之获取当前位置经纬度以及地图显示详解
May 09 Javascript
ES6中Array.includes()函数的用法
Sep 20 Javascript
Three.js基础学习教程
Nov 16 Javascript
js中arguments对象的深入理解
May 14 Javascript
微信小程序如何访问公众号文章
Jul 08 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
慎用preg_replace危险的/e修饰符(一句话后门常用)
2013/06/19 PHP
php jquery 多文件上传简单实例
2013/12/23 PHP
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
PHP实现通过二维数组键值获取一维键名操作示例
2019/10/11 PHP
刷新页面实现方式总结(HTML,ASP,JS)
2008/11/13 Javascript
javascript实现的网页局布刷新效果
2008/12/01 Javascript
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
javascript利用apply和arguments复用方法
2013/11/25 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
浅谈JavaScript中的Math.atan()方法的使用
2015/06/14 Javascript
用jQuery的AJax实现异步访问、异步加载
2016/11/02 Javascript
整理一下常见的IE错误
2016/11/18 Javascript
详解jQuery停止动画——stop()方法的使用
2016/12/14 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
Linux CentOS系统下安装node.js与express的方法
2017/04/01 Javascript
JavaScript中this关键字用法实例分析
2018/08/24 Javascript
理解Python中的With语句
2015/02/02 Python
详解Python中的join()函数的用法
2015/04/07 Python
详解Python list 与 NumPy.ndarry 切片之间的对比
2017/07/24 Python
利用python批量修改word文件名的方法示例
2017/10/17 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
2020/01/06 Python
使用python3 实现插入数据到mysql
2020/03/02 Python
使用matlab 判断两个矩阵是否相等的实例
2020/05/11 Python
简洁自适应404页面HTML好看的404源码
2020/12/16 HTML / CSS
中专毕业自我鉴定
2013/10/16 职场文书
计算机应届毕业生自荐信范文
2014/02/23 职场文书
合作经营协议书范本
2014/04/17 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
离婚协议书范本
2015/01/26 职场文书
2015年学校教研室主任工作总结
2015/07/20 职场文书
感谢信
2019/04/11 职场文书
60句有关成长的名言
2019/09/04 职场文书
简短的36句中秋节祝福信息语句
2019/09/09 职场文书