2010-07-31 5 views
2

J'essaie de centrer une nouvelle image à la verticale dans un div après avoir modifié la src attr en utilisant de cette manière:changement Src et obtenir une nouvelle hauteur à l'aide jquery

$("#image").attr("src",newsrc); 
var height = $("#image").height(); 
var newmargin = (divsize - height)/2; 
$("#image").css=("margin-top",newmargin); 

il utilise toujours la hauteur de l'image précédente . est-ce une chose de synchronisation? Ai-je besoin de lier la nouvelle hauteur à quelque chose pour l'empêcher de saisir prématurément la hauteur (images précédentes)?

toutes les images sont préchargés sur le chargement de la page ...

Répondre

1

dois-je lier obtenir la nouvelle hauteur à quelque chose pour l'empêcher saisir prématurément (images précédentes) la hauteur?

Kinda. load l'événement devrait fonctionner.

$("#image").attr("src",newsrc); 
$('#image').load(
    function() { 
     var height = $("#image").height(); 
     // ... 
    } 
); 

http://api.jquery.com/load-event/

+1

Essayé .. Toujours obtenir seulement la hauteur des précédentes images. – minikomi

+0

@minikomi Voici un exemple de travail http://jsfiddle.net/pLFCd/1/ –

+0

intéressant .. Merci d'avoir pris le temps de le faire. Ça marche! Sauf lorsque vous appuyez sur le bouton de l'image affichée, puis sur le bouton d'image alternative - il donne la hauteur des images précédentes en chrome. Safari et firefox donnent la bonne réponse. Peut-être que c'est ce que je voyais. Intéressant. EG. mettre à yahoo -> appuyez sur 1 pour aucun changement d'image -> appuyez sur 2 Attendez: 95 résultat: 50 – minikomi

Questions connexes