11548 sujets

JavaScript, DOM et API Web HTML5

bonjour,

je rencontre des soucis avec un code jQuery.
en bref, j'insère une image dans le DOM et je souhaite lancer un fadeIn() au terme du chargement de cette image. mais il semble que l'animation (le fadeIn) n'attende pas le terme du chargement pour se lancer.
le code :
var affiche_pizza = function (texte_choix_pizza, image_choix_pizza) {
			$('#choix_pizza').fadeOut('slow', function () {
				$('#choix_pizza p').html(texte_choix_pizza);
				$('#choix_pizza img').remove();
				$('<img src="img/' + img_folder + '/' + image_choix_pizza + '.jpg" alt="Pizza Latina ' + image_choix_pizza + '" width="' + img_width + '" heigh="' + img_height + '">').prependTo('#choix_pizza')
				.load(function(){
					$('#choix_pizza').css({
						"top": ((($(window).height() - $('#choix_pizza').outerHeight()) / 2) + $(window).scrollTop() + "px"),
						"left": ((($(window).width() - $('#choix_pizza').outerWidth()) / 2) + $(window).scrollLeft() + "px")
					});		
					$('#choix_pizza').fadeIn('slow');
				 });
			});

		}

avez-vous une piste pour régler le problème ? ou bien une autre façon de faire ?
merci pour votre aide.
Modifié par o06 (05 Jun 2012 - 11:58)
Bonjour,
Hem, chez moi ça semble fonctionner...

A quoi sert la fonction load si elle ne charge rien ?
salut Gothor,

la fonction load est envoyée pour l'image justement.
je ne l'ai pas écris comme suit pour + de lisibilité
$('<img src="img/' + img_folder + '/' + image_choix_pizza + '.jpg" alt="Pizza Latina ' + image_choix_pizza + '" width="' + img_width + '" heigh="' + img_height + '">').prependTo('#choix_pizza').load(function(){ ... 


ça fonctionne, mais il semble que le chargement de l'image avec prependTo() reste 'asynchrone' par rapport au fadeIn()
Modifié par o06 (05 Jun 2012 - 12:17)
Gothor,

tu as raison ... je vais réécrire ça
Modifié par o06 (05 Jun 2012 - 17:02)
Hem... Euh... Oui ! Je sais ! Hahaha...
Non, je connais pas très bien jQuery (pas du tout ?), donc je ne peux pas te le confirmer, mais si tu le dis...

En tout cas, ça ne résout pas le problème, mais si tu arrives à avancer un peu dans le code, et que ça bute toujours, envoie donc ton nouveau code =°