获取图片高度,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
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/xiaomogg/article/details/47031355