IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Mini Slideshow jquery


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut Mini Slideshow jquery
    Bonjour,

    j'ai réalisé un petit slideshow pour interchanger automatiquement une image dans une div, seulement j'ai un petit soucis visuel au changement de l'image.

    Voici mon code :

    Partie html :
    Génération du tableau JS
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script>
    	var TabSlide = <?php echo json_encode(array_values(array_diff(scandir('Photos/Slide/'), array('..', '.')))); ?>;
    </script>
    la div concernée
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="SlideShow"><img src="Photos/Slide/Img1.jpg" /></div>

    Partie javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    $(function() {
    	var NbImg = TabSlide.length;
    	var EnCours = 1;
     
    	setInterval(function(){
    		$("#SlideShow").fadeOut("slow");
    		$("#SlideShow").empty();
    		$("#SlideShow").html('<img src="Photos/Slide/'+TabSlide[EnCours]+'" />');
    		$("#SlideShow").fadeIn("slow");
     
    		if(EnCours < NbImg - 1 )
    			EnCours++;
    		else
    			EnCours = 0;
    	}, 2000);
     
    });
    Donc, dans l'idée, je veux cacher la dire (fadeOut), vider le contenu, charger le nouveau contenu, et afficher ensuite le nouveau contenu (fadeIn).

    Seulement voila, tout ne se passe pas comme je voudrais...

    J'ai la première image chargée par défaut, au bout de 2s, la deuxième image remplace brutalement la première, et ensuite j'ai le fadeOut, fadeIn, ce qui n'est pas vraiment ce que je souhaite.

    Auriez-vous donc une idée du pourquoi ?

    Merci d'avance.

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    peut être que ceci pourrait t'intéresser, sans jQuery
    Galerie avec effet de fondu

  3. #3
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut
    Merci pour le lien, mais je souhaite comprendre pourquoi ça ne marche pas, car des Slideshow j'en trouve partout sans pour autant les comprendre

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    1. Construire un sélecteur est une opération coûteuse, il faut stocker l'objet jQuery si on l'utilise plusieurs fois.
    2. La méthode html() remplace l'ancien contenu par le nouveau, l'utilisation de la méthode empty() est donc inutile.
    3. Pour avoir l'animation voulue, il faut utiliser la fonction de rappel


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var jObjSlide = $( "#SlideShow" );
     
    jObjSlide .fadeOut( "slow", function(){
        jObjSlide
            .html( '<img src="Photos/Slide/'+TabSlide[EnCours]+'" />' )
            .fadeIn( "slow" );
    });

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre émérite Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Par défaut
    Parfait !


    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mini slideshow jQuery qui boucle non-stop !
    Par Invité dans le forum jQuery
    Réponses: 2
    Dernier message: 12/06/2013, 09h11
  2. Slideshow jQuery entièrement personnalisable
    Par kimjoa dans le forum Contribuez
    Réponses: 0
    Dernier message: 27/03/2013, 20h58
  3. SlideShow JQuery Resizing
    Par lerorodu51 dans le forum jQuery
    Réponses: 1
    Dernier message: 23/05/2012, 09h14
  4. affichage d'un slideshow jQuery sur ie
    Par monobloclimber dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 11/04/2012, 11h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo