获取图片的真实宽高

本文介绍如何使用JavaScript和jQuery获取图片的实际尺寸,包括未被CSS样式影响的原始宽度和高度。通过Image对象和jQuery的方法实现这一目标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

获取图片高度,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



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陆康永

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值