[jQuery] Effet fadeIn/fadeOut avec preload d'image

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [jQuery] Effet fadeIn/fadeOut avec preload d'image

Re: [jQuery] Effet fadeIn/fadeOut avec preload d'image

par rohnn » 12 mars 2010, 14:52

tu peut meme chainer ton appel a load().

Code : Tout sélectionner

var toshow = './photo.php?categorie='+categorieSelectionnee+'&photo='+photoSuivante+'&format=big'; $('#big_photo').fadeOut('slow', function(){ $(this).attr('src',toshow); } ) .load(function(){ $(this).fadeIn('slow'); } );
Même si vous avez trouvez vos solutions, j'ai eu le même problème ce matin, et ce topic m'a été utile.
Donc, je me suis dis que peut être pour quelqu'un d'autre, ca peut servir... :)

par Ahmed.Hamadi » 21 janv. 2009, 23:03

lol bon bah c'est bon moi aussi j'avais un peu galléré avant de trouver ce truc !

par chrislabricole » 21 janv. 2009, 22:48

Merci de ton aide, j'avais déjà trouvé (avec beaucoup de difficultés mais j'y suis arrivé :P) :) :
$("#big_photo").fadeOut("normal", function(){
	$("#big_photo").attr({src : './photo.php?categorie='+categorieSelectionnee+'&photo='+photoSuivante+'&format=big';});
	$("#big_photo").load( function(){
		$("#big_photo").fadeIn("fast");
	} );
});
Merci quand même ! :)

par Ahmed.Hamadi » 21 janv. 2009, 15:45

Coucou

tu deverais peut être appeller ton nouvel effet une fois que le premier effet est terminé... pour cela... fait qqchose comme cela :

Code : Tout sélectionner

$(elem).fadeOut("slow", function(){//fonction qui s'execute après ton fadeIn $(elem2).fadeIn('slow'); // ton element 2 apparait APRES ton element 1 });
voila j'éspère que ça t'aides...

[jQuery] Effet fadeIn/fadeOut avec preload d'image

par chrislabricole » 09 janv. 2009, 13:11

Bonjour,

Depuis hier soir et ce matin, je cherche comment réaliser cet effet, mais, avec une petite image de Load entre les 2 effets (fadeIn, fadeOut) de façon à se que l'image suivante n'apparait pas en retard... (à cause de la photo qui charge...)

Voilà la partie concernée de mon code HTML/CSS:

Code : Tout sélectionner

<div style="background-image:url(./images/loading.gif); background-repeat:no-repeat; background-position:center;"> <img id="big_photo" src="./photo.php?cat=<?php echo $categorieSelectionnee; ?>&image=01&format=big" title="Photo n&deg;1" alt="Photo n&deg;1" /> </div>

Et voilà se que j'ai mis dans dans la fonction qui passe à l'image suivante :
$("#big_photo").fadeTo("slow", 0.0); // Disparition de la photo actuelle donc apparition du Loading en background
big_photo.src = './photo.php?categorie='+categorieSelectionnee+'&photo='+photoSuivante+'&format=big'; // Changement de l'image pour la suivante
$("#big_photo").load( function() { // Quand cette image doit être chargée
	$("#big_photo").fadeTo("slow", 1.0); // Réapparition de l'image suivante
} );
Voilà se que j'essaie de faire depuis des heures :
- Faire disparaitre l'image petit à petit grâce à l'opacité.
- L'image du Loading s'affiche donc puisque elle est en background...
- Quand l'image est chargée, il l'a fait réapparaitre (à l'image suivante bien sûr).

Le comportement actuel c'est qu'il n'attends pas que l'image soit chargé, donc du coup, ça fais un peu bugger l'effet attendu...
Ou alors, quand elle est chargée, on dirait qu'il oublie de faire un fadeIn/fadeOut ...

Exemple de comportement bizarre : Quand je clique sur "Suivant", il passe direct, sans effet à l'image suivante, et fait les 2 effets fadeIn/fadeOut sur la nouvelle image...


Voilà, je vous remercie beaucoup de votre aide :)