2010-07-14 16 views
3

我嘗試下面的代碼:如何檢測jQuery中圖像的高度?

var origh1 = $('img:first').height(); 
    alert(origh1); 

但它提醒 '0' 的數值。

我的img標籤沒有設置高度值,那麼爲什麼它返回0?

如果是這樣,我該如何檢索圖像的高度值?

此外,我注意到,當我做一個動畫,以增加20%的圖像大小,並減少20%,它最終會比原來的大一點。如何將圖像恢復到原始大小?如果我減少20%,爲什麼它不會回到原來的水平。我知道有數學參與......但我如何彌補在jQuery中的?

這是我的代碼:

$('img:first').fadeIn('normal').delay(500).animate({'height':'+=20%'}, 1500, 'easeOutQuad') 

和恢復原:

$('img:first').fadeIn('normal').animate({'height':'-=20%'}, 1000, 'swing'); 

回答

2

確保您的查詢之前的圖像加載正確。

$(function() { 
    alert($('img').eq(0).height()) 
}); 

您也可以嘗試將它綁定到窗口加載事件如果DOM準備還太早:

$(window).load(function() { 
    alert($('img').eq(0).height()) 
}); 
+0

至於第一個建議......與 'alert($('img:first')。height(););''完全一樣嗎?這是我嘗試的第一件事,但它仍然返回0. 我也嘗試將它移動到文檔的末尾 - 確保在它運行之前加載圖像,但那也不起作用。 至於綁定到窗口加載事件,這是可擴展的,如果我有100個圖像被加載在同一頁面上?我是否將100個頁面綁定到窗口加載事件? – marcamillion 2010-07-14 01:49:46

+0

將所有圖像加載除非將其包裝在我的後一個示例中,否則將不會執行它。聽起來你需要將它綁定到窗口加載。 – 2010-07-14 01:54:11

+0

將它放在文檔中將不會保持腳本在加載圖像之前運行。當你的所有內容完成加載時,windows.load事件只會觸發。我認爲這不重要,你有多少內容。不確定你的意思是「將它綁定到100頁」。 – Greg 2010-07-14 01:54:31

2

嘗試

$(window).load(function(){ 
    $('img:first').attr("height") 
}); 

這將觸發後您的影像出現滿載

編輯 - 對不起,我不得不編輯約五次。今天我一直在犯愚蠢的錯誤。

+0

很好。 這個工作,大部分,我相信你留下了一個拖尾括號和分號:) – marcamillion 2010-07-14 01:53:50