1. 程式人生 > >獲取圖片的真實寬高

獲取圖片的真實寬高

body fse 裏的 on() alt 渲染 iss b2c data

獲取圖片高度,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



獲取圖片的真實寬高