2009-04-02 3 views
3

Zuerst kommt die Bildhöhe als Null, danach werde ich durch Aktualisieren der Seite ihre tatsächliche Höhe erhalten. Ich muss beim ersten Mal seine Größe erreichen? Könnte mir irgendein Körper helfen?wie kann ich die bildgröße bekommen, bevor es in html geladen wird?

$j(document).ready(function(){ 
      var imgV = new Image(); 
      imgV.src="http://www.kerrvilletexascvb.com/Riverside%20Nature%20Center3.JPG"; 
      $j("#imgD").html(imgV.height); 
      alert(imgV.height); 
}); 


<div id="imgD"></div> 
<img src="http://www.kerrvilletexascvb.com/Riverside%20Nature%20Center3.JPG" /> 

Antwort

9

Sie müssen nicht ein Bild in das DOM einfügen, um seine Dimensionen zu erhalten:

$("<img />") 
    .attr("src", "http://www.google.com/intl/en_ALL/images/logo.gif") 
    .load(function() { 
     alert(this.width); 
     alert(this.height); 
    }) 
; 
1

Die Bildgröße ist nur verfügbar, wenn das Bild geladen ist. Wahrscheinlich, wenn Sie die Seite neu laden, wird das Bild sofort aus dem Cache bereitgestellt, so dass seine Größe sofort verfügbar ist.

Wenn Sie aus irgendeinem Grund die Größe ermitteln müssen, bevor Sie ein Bild anzeigen, können Sie es zunächst außerhalb des Bildschirms anzeigen. Fügen Sie einen Onload-Handler hinzu, der aufgerufen wird, wenn das Image bereit ist. Sie können dann dessen Größe prüfen und sie bei Bedarf anhängen.

Durch die Anzeige außerhalb des Bildschirms, ich meine Stick es in ein 1x1 Pixel div mit Überlauf: versteckt Stil, irgendwo auf der Unterseite der Seite.

+1

Oder noch besser, Position absoluter Weg von links/oben oder etwas -9999px; dann müssen Sie sich keine Sorgen machen, dass der Inhalt groß genug ist, um möglicherweise zu Ihrem versteckten Div zu gelangen. –

+0

Warum müssen Sie das Bild überhaupt außerhalb des Bildschirms anzeigen? Können Sie nicht einfach einen 'onload'-Handler an das Bild anhängen und dann [im Handler] die Bilddimensionen über' image.width 'und' image.height 'erhalten? –

Verwandte Themen