基于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 相关文章推荐
DOM下的节点属性和操作小结
May 14 Javascript
javascript 操作cookies及正确使用cookies的属性
Oct 15 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
Mar 01 Javascript
JS实现控制表格单元格垂直对齐的方法
Mar 30 Javascript
Javascript中prototype的使用详解
Jun 18 Javascript
JavaScript中附件预览功能实现详解(推荐)
Aug 15 Javascript
通过一个简单的例子学会vuex与模块化
Nov 22 Javascript
webpack学习教程之前端性能优化总结
Dec 05 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
Jan 11 Javascript
策略模式实现 Vue 动态表单验证的方法
Sep 16 Javascript
Vue 刷新当前路由的实现代码
Sep 26 Javascript
原生JS生成指定位数的验证码
Oct 28 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
深入PHP与浏览器缓存的分析
2013/06/03 PHP
使用jQuery轻松实现Ajax的实例代码
2010/08/16 Javascript
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
从QQ网站中提取的纯JS省市区三级联动菜单
2013/12/25 Javascript
封装了jQuery的Ajax请求全局配置
2015/02/05 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
基于Bootstrap3表格插件和分页插件实例详解
2016/05/17 Javascript
每个程序员都需要学习 JavaScript 的7个理由小结
2016/09/03 Javascript
AngularJS中$apply方法和$watch方法用法总结
2016/12/13 Javascript
Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍
2016/12/31 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
详解React Native顶|底部导航使用小技巧
2017/09/14 Javascript
微信小程序http连接访问解决方案的示例
2018/11/05 Javascript
详解如何提升JSON.stringify()的性能
2019/06/12 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
js与jquery获取input输入框中的值实例讲解
2020/02/27 jQuery
[44:40]KG vs LGD 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python在Windows和在Linux下调用动态链接库的教程
2015/08/18 Python
Python解决两个整数相除只得到整数部分的实例
2018/11/10 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
python给图像加上mask,并提取mask区域实例
2020/01/19 Python
python根据完整路径获得盘名/路径名/文件名/文件扩展名的方法
2020/04/22 Python
HTML5 本地存储和内容按需加载的思路和方法
2011/04/07 HTML / CSS
美国领先的男士和女士内衣购物网站:Freshpair
2019/02/25 全球购物
寒假思想汇报
2014/01/10 职场文书
自荐信写法介绍
2014/01/25 职场文书
药店主任岗位责任制
2014/02/10 职场文书
2014国庆节国旗下演讲稿(精选版)
2014/09/26 职场文书
学校捐书活动总结
2015/05/08 职场文书
爱心捐助活动总结
2015/05/09 职场文书
优秀学生主要事迹怎么写
2015/11/04 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书
写作技巧:怎样写好一份优秀工作总结?
2019/08/14 职场文书
如何用PHP实现多线程编程
2021/05/26 PHP