2009-04-02 3 views
3

À la première hauteur de l'image arrive à zéro, après cela en rafraîchissant la page je reçois sa hauteur réelle. Je dois avoir sa taille à la première fois? Est-ce que n'importe quel corps pourrait m'aider?comment puis-je obtenir la taille de l'image, avant qu'elle ne charge en html?

$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" /> 

Répondre

9

Vous ne devez pas insérer une image dans le DOM pour obtenir ses dimensions:

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

La taille de l'image est disponible uniquement lorsque l'image est chargée. Probable lorsque vous rechargez la page, l'image est immédiatement diffusée à partir du cache, sa taille est donc instantanément disponible.

Si, pour une raison quelconque, vous devez obtenir la taille avant d'afficher une image, vous pouvez l'afficher hors écran pour commencer. Ajoutez un gestionnaire onload qui sera appelé lorsque l'image est prête - vous pouvez ensuite inspecter sa taille, et l'attacher si nécessaire. En affichant hors écran, je veux dire coller dans un div de 1x1 pixel avec débordement: caché style, quelque part sur le bas de la page.

+1

Ou mieux encore, la position de manière absolue hors de -9999px gauche/haut ou quelque chose; alors vous n'avez pas à vous soucier du contenu assez grand pour éventuellement atteindre votre div caché. –

+0

Pourquoi avez-vous besoin d'afficher l'image hors écran du tout? Ne pouvez-vous pas simplement attacher un gestionnaire 'onload' à l'image et ensuite [dans le gestionnaire] obtenir les dimensions de l'image via 'image.width' et 'image.height'? –

Questions connexes