Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JavaScript]Timer dans un slider

J'aimerais rajouer un timer pour changer des images

    14 juin 2018 à 14:44:23

    Bonjour,

    Voilà j'ai un slider qui fais passer des images quand on appuies sur les flèches ou sur les boutons, sauf que j'aimerais que les images change toutes seul tous les 10 secondes par exemple.

    Voici le script JS

    <script type="text/javascript">
    		 	  	var slideIndex = 1;
    				showSlides(slideIndex);
    
    				// Next/previous controls
    				function plusSlides(n) {
    				  showSlides(slideIndex += n);
    				}
    
    				// Thumbnail image controls
    				function currentSlide(n) {
    				  showSlides(slideIndex = n);
    				}
    
    				function showSlides(n) {
    				  var i;
    				  var slides = document.getElementsByClassName("mySlides");
    				  var dots = document.getElementsByClassName("dot");
    				  if (n > slides.length) {slideIndex = 1}
    				  if (n < 1) {slideIndex = slides.length}
    				  for (i = 0; i < slides.length; i++) {
    				      slides[i].style.display = "none";
    				  }
    				  for (i = 0; i < dots.length; i++) {
    				      dots[i].className = dots[i].className.replace(" active", "");
    				  }
    				  slides[slideIndex-1].style.display = "block";
    				  dots[slideIndex-1].className += " active";
    				} 
    		 	  </script>


    Et voici le site avec le slider en question

    Merci pour votre aide

    Cordialement

    • Partager sur Facebook
    • Partager sur Twitter

    "Pose ta question maintenant tu seras bête 1 seconde là pose pas tu seras bête toutes ta vie" 

      14 juin 2018 à 14:53:05

      window.setInterval(function(){
        plusSlides(n)
      }, 10000);
      • Partager sur Facebook
      • Partager sur Twitter
        14 juin 2018 à 15:00:06

        Merci de ta réponse mais ça ne fonctionne pas, il faut que je le mette ou dans le script ??

        Je comprends pas la ligne de codes que tu ma passé

        -
        Edité par Clément.Pa 14 juin 2018 à 16:08:35

        • Partager sur Facebook
        • Partager sur Twitter

        "Pose ta question maintenant tu seras bête 1 seconde là pose pas tu seras bête toutes ta vie" 

          14 juin 2018 à 17:07:48

          grossièrement avec les 3 lignes ci dessus ta fonction se lance toutes les 10000ms soit 10s

          Je te renvoie vers cette documentation ce sera bien plus clair que si je t'explique moi ^^

          https://developer.mozilla.org/fr/docs/Web/API/WindowTimers/setInterval

          • Partager sur Facebook
          • Partager sur Twitter
            15 juin 2018 à 8:04:15

            D'accord mais il faut que je le place ou dans ma fonction ?

            Car je ne sais pas si je dois récrée un script avec ça dedans ou le mettre dans mon script, et avec quelle variable,


            Merci de l'aide

            -
            Edité par Clément.Pa 18 juin 2018 à 9:52:50

            • Partager sur Facebook
            • Partager sur Twitter

            "Pose ta question maintenant tu seras bête 1 seconde là pose pas tu seras bête toutes ta vie" 

              18 juin 2018 à 10:02:18

              up car j'ai toujours le même problème
              • Partager sur Facebook
              • Partager sur Twitter

              "Pose ta question maintenant tu seras bête 1 seconde là pose pas tu seras bête toutes ta vie" 

                18 juin 2018 à 11:42:38

                Salut,

                C'est à mettre dans le scope global du script

                C'est à dire après le } de la ligne 29

                Je te conseille ici d'onglober ton script dans l'event listener DOMContentLoaded pour t'assurer que ton script se lance une fois que

                touts tes éléments du DOM soit complètement chargé

                document.addEventListener("DOMContentLoaded",function(){
                     //Ici tout ton script
                });



                • Partager sur Facebook
                • Partager sur Twitter
                Infoxp ici depuis 2007
                  18 juin 2018 à 14:05:06

                  Je te remercie de ta réponse @infoxp mais je l'ais mis ou tu m'a dit de le mettre mais rien ne ce passe

                  document.addEventListener("DOMContentLoaded",function(){
                  		 	  	var slideIndex = 1;
                  				showSlides(slideIndex);
                  				// Next/previous controls
                  				function plusSlides(n) {
                  				  showSlides(slideIndex += n);
                  				}
                  				
                  				// Thumbnail image controls
                  				function currentSlide(n) {
                  				  showSlides(slideIndex = n);
                  				}
                  				function showSlides(n) {
                  				  var i;
                  				  var slides = document.getElementsByClassName("mySlides");
                  				  var dots = document.getElementsByClassName("dot");
                  
                  				  if (n > slides.length) 
                  				  	{
                  				  		slideIndex = 1
                  				  	}
                  
                  				  if (n < 1) 
                  				  	{
                  				  		slideIndex = slides.length
                  				  	}
                  
                  				  for (i = 0; i < slides.length; i++) 
                  				  {
                  				      slides[i].style.display = "none";
                  				  }
                  
                  				  for (i = 0; i < dots.length; i++) 
                  				  {
                  				      dots[i].className = dots[i].className.replace(" active", "");
                  				  }
                  				  slides[slideIndex-1].style.display = "block";
                  				  dots[slideIndex-1].className += " active";
                  				} 
                  				window.setInterval(function(){
                   				 plusSlides(n)
                  					}, 1000);
                  			});
                  



                   et le

                  document.addEventListener("DOMContentLoaded",function(){
                       //Ici tout ton script
                  });



                  Bloque mon script j'ai l’impressions

                  Merci pour ton aide :)



                  -
                  Edité par Clément.Pa 18 juin 2018 à 14:14:08

                  • Partager sur Facebook
                  • Partager sur Twitter

                  "Pose ta question maintenant tu seras bête 1 seconde là pose pas tu seras bête toutes ta vie" 

                    19 juin 2018 à 11:58:27

                    Bien évidement il faut que dans le setinterval que tu spécifie un chiffre sur plusSlides et non laisser n de plusSlides(n) qui est ici undefined

                    en faite il te manque un moyen de savoir à quel slide que tu est donc du ne peut pas utiliser setInterval tel quel, il te faut unmoyen de savoir sur quel slideIndex que tu est

                    -
                    Edité par Infoxp 19 juin 2018 à 12:00:57

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Infoxp ici depuis 2007
                      19 juin 2018 à 14:12:19

                      Aïe ça m'a l'air compliqué

                      Merci de ton aide quand même ;)

                      • Partager sur Facebook
                      • Partager sur Twitter

                      "Pose ta question maintenant tu seras bête 1 seconde là pose pas tu seras bête toutes ta vie" 

                        23 juin 2018 à 12:20:27

                        window.setInterval(
                        function(){
                             plusSlides(slideIndex);
                        }
                        , 1000);
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Infoxp ici depuis 2007

                        [JavaScript]Timer dans un slider

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown