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

JavaScript Discussion :

Slides et dot de manière dynamique


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 36
    Points : 32
    Points
    32
    Par défaut Slides et dot de manière dynamique
    Bonjour à tous,

    J'ai un slider de 4 slides avec pour chaque slides un dot en dessous de mon slider comme ceci : http://projet5.webagencycor.com/

    J'aimerais que, quand j'ajoute une image en plus de ces 4 dans mon dashboard un nouveau dot apparait dynamiquement.

    Voici mon code :

    Code HTML : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    <div class="container3">
     
                <?php while ($image = $images->fetch())
                {
                ?>       
                <div class="slides">
                    <img src="assets/img/<?= $image['chemin'] ?>" style="width:100%" alt="photo-chantier" />
                </div>    
                <?php 
                }
                ?>
     
                <a class="prev" onclick="plusSlides(-1)"></a>
                <a class="next" onclick="plusSlides(1)"></a>
            </div>
     
                <br>
     
     
                <div style="text-align:center">
                    <span class="dot" onclick="currentSlide(1)"></span>
                    <span class="dot" onclick="currentSlide(2)"></span>
                    <span class="dot" onclick="currentSlide(3)"></span>
                    <span class="dot" onclick="currentSlide(4)"></span>
                </div>
     
            <script>
     
                var slideIndex = 1;
                showSlides(slideIndex); //fonction d'appel
     
                function plusSlides(n) {
                showSlides(slideIndex += n);
                }
     
                function currentSlide(n) {
                showSlides(slideIndex = n);
                }
     
                function showSlides(n) {
                var i;
                var slides = document.getElementsByClassName("slides");
                var dots = document.getElementsByClassName("dot");
                
                // Passer de la diapositive 3 à la diapositive 1
                if (n > slides.length) {
                    slideIndex = 1;
                }
                
                // Basculer de la diapositive 1 à la diapositive 3
                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>

    Quelqu'un pourrait m'expliquer comment je devrais m'y prendre svp ? :)
    Merci d'avance!

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    tu n'as qu'à créer dynamiquement, comme tu le fais pour tes images, cette partie de ton HTML
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div style="text-align:center">
      <span class="dot" onclick="currentSlide(1)"></span>
      <span class="dot" onclick="currentSlide(2)"></span>
      <span class="dot" onclick="currentSlide(3)"></span>
      <span class="dot" onclick="currentSlide(4)"></span>
    </div>

  3. #3
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Si tu donnes un id à ton div conteneur d'images...
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div class="slides" id="im">
    et un id à ton conteneur de dot...
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <div style="text-align:center" id="divdot">
    ça peut donner ça:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    document.querySelector("#im").querySelectorAll("img").forEach((v,i)=>{
    	let sp=document.createElement("span");
    	sp.prop=i;
    	sp.className="dot";
    	sp.addEventListener("click",(e)=>{
    		currentSlide(e.target.prop)
    	},
    	false);
    	document.querySelector("#divdot").appendChild(sp)
    })

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 36
    Points : 32
    Points
    32
    Par défaut
    Merci pour vos réponses, tout marche niquel maintenant !

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

Discussions similaires

  1. Comment charger une DLL win32 en C# de manière dynamique
    Par Jayceblaster dans le forum Windows Forms
    Réponses: 4
    Dernier message: 10/06/2009, 18h38
  2. Réponses: 13
    Dernier message: 25/01/2007, 17h20
  3. Réponses: 1
    Dernier message: 11/01/2007, 22h57
  4. Créer une variable de manière dynamique
    Par Nelson74 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/11/2006, 23h05
  5. [JTable] Changer les colonnes de manière dynamique
    Par gg2laba dans le forum Composants
    Réponses: 3
    Dernier message: 03/10/2005, 23h39

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