2009-04-28 225 views
4

當我沒有指定樣式時,我需要在javascript(jQuery)中獲取圖像的尺寸(jQuery的css()返回0)。獲取圖像的寬度和高度

也許這是因爲我正在用jQuery加載圖像,然後才詢問它的尺寸。如果是這種情況,是否有任何聽取的事件可以說明圖像何時加載?

回答

3

也許圖像尚未完全加載,因此尺寸無法給出。但沒有您的代碼我不能告訴你在做什麼錯的,但這裏有一個例子,將工作:

function LoadImage(isrc) 
    { 
    var oImg = new Image(); 
    oImg.src = isrc; 
    if (oImg.complete) { 
     window.alert(oImg.src + ' ' + oImg.width + ' x ' + oImg.height); 
    } 
    else { 
     window.setTimeout('iLoad(imgsrc)', 1000); 
    } 
    } 

    <body onLoad='LoadImage(imgsrc)'> 
+0

完整似乎不適用於Chrome。這對我工作到目前爲止:http://stackoverflow.com/questions/318630/get-real-image-width-and-height-with-javascript-in-safari-chrome – 2ni 2010-01-09 17:10:19

0

根據image.width或image.naturalWidth(和高度等效值)的寬度/高度給出圖像標籤上的寬度/高度屬性,naturalWidth/Height給出了實際基礎圖像的尺寸。

0

您可以使用img's onload來獲得尺寸的圖像一旦加載:

<img src="..." onload="getDimensions(this)" /> 
1

這裏有一個鏈接,幫助,看演示:http://docs.jquery.com/Events/load

使用jQuery有一個負載()事件當圖像完成加載後,會發生這種情況,即:

<script type="text/javascript"> 
    $(document).ready(function() 
    { 
     $('#theImage').load(function() 
     { 
      // do the stuff here. 
     }); 
    }); 
</script> 


<img src="blah.jpg" id="theImage" /> 
0

你可以嘗試karim79的和約翰·博克的回答結合起來。 嘗試將圖像預加載到隱藏的DOM中,當它加載時,您可以嘗試獲取寬度爲&的高度。