Ce code HTML ne marche pas, pourquoi ?

zem1974 Messages postés 3 Statut Membre -  
jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour, voici mon code, je débute. Chaque bouton devrait ouvrir leur contenu respectifs et pourtant seul le contenu 3 s'affiche, ça me rend dingue...

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Modale Vanilla</title>
    <link rel="stylesheet" href="style.css" />
    <link rel="preconnect" href="https://fonts.googleapis.com" />
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
    <link
      href="https://fonts.googleapis.com/css2?family=Raleway%3Awght%40100%3B200%3B300%3B400%3B500%3B600%3B700%3B800%3B900&display=swap"
      rel="stylesheet"
    />
  </head>
  <body>

    <div class="modal-container">

      <div class="overlay modal-trigger"></div>
          
      <div id="modal1" class="modal" role="dialog" aria-labelledby="modalTitle1" aria-describedby="dialogDesc1">
        <button
        aria-label="close modal"
        class="close-modal modal-trigger">X</button>
        <h1 id="modalTitle1">Contenu 1</h1>
        <p id="dialogDesc1">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ut nam exercitationem nihil veritatis sapiente quia.</p>
      </div>

      <div id="modal2" class="modal" role="dialog" aria-labelledby="modalTitle2" aria-describedby="dialogDesc2">
        <button
        aria-label="close modal"
        class="close-modal modal-trigger">X</button>
        <h1 id="modalTitle2">Contenu 2</h1>
        <p id="dialogDesc2">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ut nam exercitationem nihil veritatis sapiente quia.</p>
      </div>

      <div id="modal3" class="modal" role="dialog" aria-labelledby="modalTitle3" aria-describedby="dialogDesc3">
        <button
        aria-label="close modal"
        class="close-modal modal-trigger">X</button>
        <h1 id="modalTitle3">Contenu 3</h1>
        <p id="dialogDesc3">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ut nam exercitationem nihil veritatis sapiente quia.</p>
      </div>

    </div>

    <button id="modalBtn1" class="modal-btn modal-trigger" data-target="modal1">Open Modal 1</button>
    <button id="modalBtn2" class="modal-btn modal-trigger" data-target="modal2">Open Modal 2</button>
    <button id="modalBtn3" class="modal-btn modal-trigger" data-target="modal3">Open Modal 3</button>

    <script src="app.js"></script>
  </body>
</html>

3 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     

    Bonjour,

    Que contient ton fichier app.js  ?

    N'aurais tu pas des erreurs qui s'affichent dans la console de ton navigateur ?

    PS: Pour poster du code sur le forum, merci d'utiliser l'icone prévue à cet effet lorsque tu rédiges ton message...


    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       

      PS : je suppose que ton souci est lié à ton javascript et non à ton html.

      je déplace donc dans le forum javascript.

      0
      1. zem1974 Messages postés 3 Statut Membre > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         

        Inclure le code JavaScript dans l'espace prévu à cet effet, réussi :) mais répondre sous ton commentaire ça sera pour la prochaine fois ahaha merci de ton aide

        0
  2. zem1974 Messages postés 3 Statut Membre
     

    Merci de ta réponse :

    const modalContainer = document.querySelector(".modal-container");
    const modalTriggers = document.querySelectorAll(".modal-trigger");
    
    modalTriggers.forEach(trigger => trigger.addEventListener("click", toggleModal))
    
    function toggleModal(){
      modalContainer.classList.toggle("active")
    }
    
    0
  3. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     

    Ton JS n'est pas bon.

    Tu ne lui dit pas quelle modale afficher..

    Essaye comme ceci:

     <div class="modal-container">
    
          <div class="overlay modal-trigger"></div>
              
          <div id="modal1" class="modal" role="dialog" aria-labelledby="modalTitle1" aria-describedby="dialogDesc1">
            <button
            aria-label="close modal"
            class="close-modal ">X</button>
            <h1 id="modalTitle1">Contenu 1</h1>
            <p id="dialogDesc1">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ut nam exercitationem nihil veritatis sapiente quia.</p>
          </div>
    
          <div id="modal2" class="modal" role="dialog" aria-labelledby="modalTitle2" aria-describedby="dialogDesc2">
            <button
            aria-label="close modal"
            class="close-modal ">X</button>
            <h1 id="modalTitle2">Contenu 2</h1>
            <p id="dialogDesc2">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ut nam exercitationem nihil veritatis sapiente quia.</p>
          </div>
    
          <div id="modal3" class="modal" role="dialog" aria-labelledby="modalTitle3" aria-describedby="dialogDesc3">
            <button
            aria-label="close modal"
            class="close-modal ">X</button>
            <h1 id="modalTitle3">Contenu 3</h1>
            <p id="dialogDesc3">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ut nam exercitationem nihil veritatis sapiente quia.</p>
          </div>
    
        </div>
    
        <button id="modalBtn1" class="modal-btn modal-trigger" data-target="modal1">Open Modal 1</button>
        <button id="modalBtn2" class="modal-btn modal-trigger" data-target="modal2">Open Modal 2</button>
        <button id="modalBtn3" class="modal-btn modal-trigger" data-target="modal3">Open Modal 3</button>
    
     const modalTriggers = document.querySelectorAll(".modal-trigger");
        const closeMdls = document.querySelectorAll(".close-modal");
        
       
        modalTriggers.forEach(function(el){
          el.addEventListener("click", function(){
               console.log("bouton cliqué",this); 
               let target = this.dataset.target;
               console.log("modal target",target);
               let modalContainer = document.querySelector("#"+target);
               removeActive(); // on enleve la class active sur toutes les modales
               modalContainer.classList.add("active")
            });
          });
        
        closeMdls.forEach(function(btnclose){
          btnclose.addEventListener("click",function(){
            removeActive();
          });
        });
        
          function removeActive(){
          var modals = document.querySelectorAll(".modal");
            modals.forEach(function(div){
               div.classList.remove("active");
            });
          }

    0