89 votes

D'attente pour l'image à charger en Javascript

Je suis en train de faire un appel Ajax qui me renvoie des informations, y compris un chemin de l'image. Je prépare toutes ces informations dans mon code HTML qui sera affiché comme une sorte de pop up. Je viens d'activer / désactiver la visibilité de par popup div caché visible.

Pour définir la position de mon popup div, j'ai à calculer en fonction de la hauteur de l'image. Donc, je dois attendre que l'image à charger à savoir sa dimension avant le réglage de la position de commutation et de la visibilité de visible.

J'ai essayé des trucs avec la récursivité, setTimeout, img complète de la propriété, tandis que la boucle... sans succès.

Alors, comment puis-je faire cela. Je devrais peut-être retourner dimensions dans mon appel Ajax.

157voto

Josh Stodola Points 42410
var img = new Image();
img.onload = function() { alert("Height: " + this.height); }
img.src = "http://path/to/image.jpg";

12voto

Sagi Points 5590

Si vous utilisez jQuery, vous pouvez utiliser ses charge de l'événement.

Jetez un oeil à l'exemple:

$('img.userIcon').load(function(){
    if($(this).height() > 100) {
        $(this).addClass('bigImg');
    }
});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X