2009-04-28 16 views
4

スタイルが指定されていない場合(jQueryのcss()は0を返す)、画像の寸法をjavascript(jQuery)で取得する必要があります。イメージを取得する

おそらく、私はその寸法を求める直前にjQueryでイメージをロードしているからかもしれません。この場合、イメージがロードされたことを通知するイベントがありますか?

答えて

3

は多分画像が完全に寸法があなたなしでgiven.Butすることができないため、ロードされていませんコードは、私はあなたが間違ってやっていること教えてくれますが、ここで働くだろうというであることはできません。

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

クロムについては完全ではないようです。これまで私のために働いた:http://stackoverflow.com/questions/318630/get-real-image-width-and-height-with-javascript-in-safari-chrome – 2ni

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にプリロードしてください。読み込んだときに、その幅を取得しようとすると&の高さになります。

関連する問題