Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme menu burger

    1 avril 2018 à 18:28:02

    Bonjour à toutes et à tous, 

    Je me permet de demander votre aide car j'ai un petit souci.

    Je souhaites installer un menu burger pour le format téléphone de mon site.

    J'ai donc suivi les instructions fournies par ce site : http://www.web-design-codex.fr/bascule-de-menu-en-mode-hamburger

    Toutefois, j'ai un souci, quand je clique sur le bouton du menu une erreur apparaît dans la console.

    index.html:217 Uncaught TypeError: Cannot set property 'display' of undefined

        at hamburger_click (index.html:217)

        at <anonymous>:1:1

    HTML

            <div class="menuburger">

            <a href="javascript:hamburger_click();">

            <img class="imgburger" src="img/sidr.png">    

            </a>

            </div>

    Javascript

            <!--- Menu Burger---->

            <script>

              function hamburger_click(){

              var hamburgerElement = document.getElementsByClassName("menuburger");

              var menuElement = document.getElementsByClassName("menu, nav-principale, liens-utiles");

              hamburgerElement.style.display="none";

              menuElement.style.display = "block";

    }

           </script>

    Pour le css, j'ai juste modifier la taille du bouton.

    J'avoue que j'ai essayer pas mal de modifs mais sans resultats concrets et que je dois faire cette manip sur une vingtaine de pages avant mardi (meme si un copier coller devrait suffire pour la suite)

    Si quelqu'un parviens a trouver l'origine du probleme et à m'aider a le corriger je lui en serait grandement reconnaissant.

    Merci dans tous les cas d'avoir pris le temps de me lire et Bonne continuation a vous.

    -
    Edité par MaximeChales 1 avril 2018 à 18:36:15

    • Partager sur Facebook
    • Partager sur Twitter
      1 avril 2018 à 18:46:59

      Yo !

      Les méthodes "getElementsByClassName" renvoient un tableau. Hors dans le code, c'est utilisé comme un objet. Du coup si tu veux récupérer un seul élément, utilise plutôt document.querySelector() en passant le sélecteur CSS de la classe.

      • Partager sur Facebook
      • Partager sur Twitter
        1 avril 2018 à 21:13:25

        Hello,

        Merci à to pour ta réponse rapide. 

        J'ai modifier le code javascript et j'ai une nouvelle erreur qui s'affiche: 

        index.html:217 Uncaught TypeError: Failed to execute 'querySelector' on 'Document': 1 argument required, but only 0 present.

            at hamburger_click (index.html:217)

            at <anonymous>:1:1

        mon code javascript est comme suit: 

                <script>

                  function hamburger_click(){

                  var hamburgerElement = document.querySelector()("menuburger");

                  var menuElement = document.querySelector()("menu, nav-principale, liens-utiles");

                  hamburgerElement.style.display="none";

                  menuElement.style.display = "block";

        }

               </script>

        pour ce qui est de l html et du css e n'ai fais aucune modification pour l'instant.

        je n'ai d ailleurs aucun css pour le volet qui est censé s'ouvrir.

        • Partager sur Facebook
        • Partager sur Twitter
          30 avril 2018 à 18:33:13

          Attention à la manière d'utiliser querySelector. Je t'invite à lire la doc https://developer.mozilla.org/fr/docs/Web/API/Document/querySelector
          • Partager sur Facebook
          • Partager sur Twitter

          Probleme menu burger

          × 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