2012-09-04 34 views
1

我有一些圖像的響應式佈局。圖像有max-width:100%設置。並且高度不能在CSS或HTML屬性中預設,否則隨着響應式佈局變小,圖像會變形。它必須是height: auto;才能正確縮放。jQuery計算圖像高度W/O CSS或高度attrib集?

是否有可能在jQuery中計算圖像的高度? .height().css('height')依賴於設置css或height屬性,就像我說過的那樣,當響應式設計更改大小時,我無法設置那些不扭曲圖像。

+0

重複 - 請參閱http://stackoverflow.com/questions/1944280/determine-original-size-of-image-cross-browser – TheHe

回答

3

我的問題結束了被認爲.height().css('height')正在返回0,因爲圖像(S)還沒有加載時的代碼被調用。

爲了獲得高度,我跑了以下內容:

$(document).ready(function(){ 
    $('img.whatever').load(function(){ 
    console.log($(this).height()); // calculates height correctly after image is loaded. 
    }); 
}); 
+0

這是一個偉大的常識解決方案。我工作得很好,因爲我遇到了同樣的問題(但由於某種原因,我只在Firefox中)。 – Tricky12

0

正如Determine original size of image cross browser?提到:

你有2種選擇:

選項1:

刪除寬度和高度屬性並讀取偏移量和偏移量高度

選項2:

創建一個JavaScript圖像對象,設置src,並讀取寬度和高度(您甚至不必將其添加到頁面來執行此操作)。

function getImgSize(imgSrc) { 
    var newImg = new Image(); 

    newImg.onload = function() { 
    var height = newImg.height; 
    var width = newImg.width; 
    alert ('The image size is '+width+'*'+height); 
    } 

    newImg.src = imgSrc; // this must be done AFTER setting onload 

} 

我相信該解決方案將爲您工作。

如果你只是改變圖像的高度或寬度,它不應該扭曲高寬比。