博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取图片的真实宽高
阅读量:6918 次
发布时间:2019-06-27

本文共 1843 字,大约阅读时间需要 6 分钟。

获取图片高度,jq 用的是height()

获取 宽度。jq用的是width()。

只是这个是渲染后的宽高,也就是css设置后的宽高

javascript 是offsetWidth offsetHeight

相同,这个也是浏览器渲染后的大小

那假设我想获取图片原本的大小呢?

这个时候就须要用到Image对象了

请看demo1:

var img_url ='mid/01.jpg';    

// 创建对象    
var img = new Image();    
// 改变图片的src    
img.src = img_url;    
// 载入完毕运行    
img.onload = function(){    
    // 打印    
    alert('width:'+img.width+',height:'+img.height);    
};

//得到答案:400 400

如今我们知道Image能够获取到图片原本的宽高

问:那。用jquery能够么?

答:能够

demo2:

<!DOCTYPE html>

<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Examples</title>
<meta name="description" content="">
<meta name="keywords" content="">
<style>
*{
margijn:0;
padding:0;
}
div{
width:200px;
height:200px;
border:1px solid #666666;
}
img{
width:100px;
height:100px;
}
</style>
</head>
<body>
    <div>
    <img src="mid/01.jpg" alt="">
    </div>
      div的宽:<span class="divW"></span>
      图片的原本:<span class="imgW"></span>
       图片的设置样式后的宽:<span class="imgW2"></span>
    <script src="../jquery.js"></script>
    <script>
     $(function(){
      var _w = parseInt($("div").width());
      var realWidth;//真实的宽度 
      var realHeight;//真实的高度 //这里做下说明,
      $(".divW").html($("div").width());
      $(".imgW2").html($("img").width());

      //获取浏览器的宽度 
      $("img").each(function(i)
     
      var img = $(this); 
     
      //$("<img/>")这里是创建一个暂时的img标签。类似js创建一个new Image()对象。 
    $("<img/>").attr("src", $(img).attr("src")).load(function() 
   
    /* 假设要获取图片的真实的宽度和高度有三点必须注意 1、须要创建一个image对象:如这里的$("<img/>") 2、指定图片的src路径 3、一定要在图片载入完毕后运行如.load()函数里运行 */
    realWidth = this.width;  
    realHeight = this.height; 
    //假设真实的宽度大于浏览器的宽度就依照100%显示 
    if(realWidth>=_w)
   
    $(img).css("width","100%").css("height","100%"); 
   
    else
    {
     //假设小于浏览器的宽度依照原尺寸显示 
    $(img).css("width",realWidth+'px').css("height",realHeight+'px'); 
   
    $(".imgW").html(realWidth+" 高:"+realHeight);
    }); 
   });
     
     })

//显示效果例如以下,尽管通过js设置了图片宽100 高100。可是仍然能获取到实际为400的真实高度

    </script>
</body>
</html>

參考:http://www.jb51.net/article/55776.htm

你可能感兴趣的文章
JavaScript30秒, 从入门到放弃之Array(六)
查看>>
RabbitMQ的安装和使用
查看>>
WebAssembly起步
查看>>
基于CentOS搭建Hexo博客--设置NexT主题及个性化定制
查看>>
百度移动端首页秒开学习
查看>>
【304天】每日项目总结系列042(2017.12.06)
查看>>
数人云|给还在犹豫选择的你,微服务架构与整体架构的各自优势
查看>>
ES6之数值的扩展
查看>>
算法之路(1) -- two sum
查看>>
JavaScript Event loop 事件循环
查看>>
TensorFlow端到端旋风教程
查看>>
【237天】网易云课堂计算机专业基础课程系列——计算机专业导论(2)
查看>>
读Zepto源码之Fx模块
查看>>
Java究极打基础之ArrayList篇
查看>>
2017-10-06 前端日报
查看>>
即时通信相关技术总结
查看>>
如何编写更好的SQL查询:终极指南-第二部分
查看>>
[React技术内幕] key带来了什么
查看>>
Vue2+VueRouter2+webpack 构建项目实战(四):接通api,渲染列表
查看>>
【全栈React】第19天: 用Redux进行数据管理
查看>>