基于javascript代码实现通过点击图片显示原图片


Posted in Javascript onNovember 29, 2015

废话不多说了,直接给大家贴js实现点击图片显示原图片的代码,具体代码如下所示:

function DrawImage(ImgD){
  var image = new Image();
  image.src=ImgD.src;
  var width = $(ImgD).attr("width");
  var height = $(ImgD).attr("height");
  if(width >100 && height>80){
    ImgD.width=100; 
    ImgD.height=80;
    ImgD.alt=image.width+"×"+image.height;
  }else{
    if(image.width>0 && image.height>0){
      flag=true;
      if(image.width>300 || image.height>200){
        ImgD.width=image.width/2; 
        ImgD.height=image.height/2;
        ImgD.alt=image.width+"×"+image.height;
      }else{
        ImgD.width=image.width;  
        ImgD.height=image.height;
        ImgD.alt=image.width+"×"+image.height;
      }
    }
  }
}

下面分享一段关于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: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 相关文章推荐
javascript 用记忆函数快速计算递归函数
Mar 15 Javascript
js 静态动态成员 and 信息的封装和隐藏
May 29 Javascript
JavaScript 用Node.js写Shell脚本[译]
Sep 20 Javascript
javaScript NameSpace 简单说明介绍
Jul 18 Javascript
JavaScript中提前声明变量或函数例子
Nov 12 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
Feb 05 Javascript
javascript实现简单的页面右下角提示信息框
Jul 31 Javascript
手把手搭建安装基于windows的Vue.js运行环境
Jun 12 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
Jan 25 jQuery
node打造微信个人号机器人的方法示例
Apr 26 Javascript
基于layPage插件实现两种分页方式浅析
Jul 27 Javascript
vuex state中的数组变化监听实例
Nov 06 Javascript
整理Javascript数组学习笔记
Nov 29 #Javascript
Bootstrap每天必学之缩略图与警示窗
Nov 29 #Javascript
分享我的jquery实现下拉菜单心的
Nov 29 #Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
Nov 29 #Javascript
整理Javascript基础语法学习笔记
Nov 29 #Javascript
Jquery操作Ajax方法小结
Nov 29 #Javascript
jquery+php实现滚动的数字特效
Nov 29 #Javascript
You might like
对Session和Cookie的区分与解释
2007/03/16 PHP
PHP无刷新上传文件实现代码
2011/09/19 PHP
php实现遍历目录并删除指定文件中指定内容
2015/01/21 PHP
浅析PHP7新功能及语法变化总结
2016/06/17 PHP
PHP fprintf()函数用法讲解
2019/02/16 PHP
javascript中定义私有方法说明(private method)
2014/01/27 Javascript
jquery实现网页的页面平滑滚动效果代码
2015/11/02 Javascript
javascript下拉列表菜单的实现方法
2015/11/18 Javascript
详解JavaScript基于面向对象之继承
2015/12/13 Javascript
JS中dom0级事件和dom2级事件的区别介绍
2016/05/05 Javascript
JavaScript使用Range调色及透明度实例
2016/09/25 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
jQuery validata插件实现方法
2017/06/25 jQuery
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
inner join 内联与left join 左联的实例代码
2017/09/18 Javascript
JS实现table表格内针对某列内容进行即时搜索筛选功能
2018/05/11 Javascript
js如何获取访问IP、地区、当前操作浏览器
2019/07/23 Javascript
微信小程序手动添加收货地址省市区联动
2020/05/18 Javascript
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
Python将列表数据写入文件(txt, csv,excel)
2019/04/03 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
python seaborn heatmap可视化相关性矩阵实例
2020/06/03 Python
卡塔尔航空官方网站:Qatar Airways
2017/02/08 全球购物
一个SQL面试题
2014/08/21 面试题
财务部副经理岗位职责
2014/03/14 职场文书
经典毕业生求职信
2014/07/12 职场文书
文员试用期转正自我鉴定
2014/09/14 职场文书
银行会计主管岗位职责
2014/10/01 职场文书
2014年大班保育员工作总结
2014/12/02 职场文书
2014年卫生保健工作总结
2014/12/08 职场文书
个人工作表现自我评价
2015/03/06 职场文书
2015年上半年信访工作总结
2015/03/30 职场文书
工程技术员岗位职责
2015/04/11 职场文书
委托书范本格式
2019/04/18 职场文书
Mysql官方性能测试工具mysqlslap的使用简介
2021/05/21 MySQL
MySQL修改默认引擎和字符集详情
2021/09/25 MySQL