Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Navbar remains opened on page load and shouldn't

I’m doing an hamburger menu which has to open when toggled. The thing is, I can close and open it without any problem but it remains open on page load. Which means it is already toggled when you open the page. Hope this explanation is clear. I gace all the code I have for this feature. Please Can someone help ?

JS

const hamburger = document.querySelector('.navbar__hamburger');
const links = document.querySelector('.nav-primary');


hamburger.addEventListener('click', ()=> {

links.classList.toggle('nav-primary--hide');  
 });
    },
  };


HTML

 <header class="header">
     <div class="header-color">
   <div class="container">
     <div class="logo__wrapper">
       <a class="link__logo" href="index.html">
         <div class="header__logo__ctn">
       <img class="header__logo" src="./assets/svg/logo-svg-ghosts-02.svg"/>
       </div>
       <p class="header__title">ghosts team</p>
      </a>
     </div>
     <div class="navbar__hamburger">
      <span class="navbar__hamburger__line"></span>
      <span class="navbar__hamburger__line"></span>
      <span class="navbar__hamburger__line"></span>
    </div>
     <nav class="nav-primary nav-primary--hide">
        <ul class="main-menu">
          <li class="menu-item"><a class="menu-item-link presentation" href="index.html">présentation</a></li>
          <li class="menu-item"><a class="menu-item-link" href="airsoft.html">l'airsoft</a></li>
          <li class="menu-item"><a class="menu-item-link" href="terrain.html">terrain</a></li>
          <li class="menu-item"><a class="menu-item-link" href="reglement.html">règlement</a></li>
          <li class="menu-item"><a class="menu-item-link" href="equipe.html">équipe</a></li>
          <li class="menu-item galerie"><a class="menu-item-link" href="gallery.html">galerie photos</a></li>
        </ul>
     
     <div class="social__wrapper__ctn">
       <ul class="social__wrapper">
         <li class="social__item"><a class="social__link" href="/" target="_blank"><span>Suivez nous sur Facebook:</span><i class="fa-brands fa-facebook-f"></i></a></li>
       </ul>
     </div>
    </nav> 
  </div>
   </div>
   
</div>
 </header>


CSS

.container {
  width: 100%;
  max-width: 1550px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px;
  margin: 0 auto;
  @media screen and (max-width: 1183px) {
    align-items: flex-start;
    flex-wrap: wrap;
    padding: 15px 30px;
  }
}

.header {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  .header-color {
    background-color: rgba($color: $darkGrey, $alpha: 0.7);
    @media screen and (max-width: 1183px) {
      background-color: $darkGrey;
      
    }
    .logo__wrapper {
      @media screen and (max-width: 359px) {
        flex: 70%;
      }
      @media screen and (min-width: 360px) and (max-width: 1183px) {
        flex: 80%;
      }
      .link__logo {
        text-decoration: none;
        display: flex;
        align-items: center;
        max-width: 210px;
        .header__logo__ctn {
          padding-right: 5px;
          .header__logo {
            height: 56px;
          }
        }

        .header__title {
          color: #ffffff;
          font-family: $calvous;
        }
      }
    }
    .nav-primary {
      display: flex;
      justify-content: space-between;
      align-items: center;
      @media screen and (max-width: 1183px) {
        flex-direction: column;
        justify-content: flex-start;
        // height: 100vh;
      }

      .nav {
        display: flex;
        justify-content: space-between;
        letter-spacing: 2px;
        list-style-type: none;
        

        @media screen and (max-width: 1183px) {
          flex-direction: column;
        }
        .menu-item {
          text-decoration: none;
          @media screen and (max-width: 1183px) {
            display: flex;
            padding: 8px 0;
          }
          &::after {
            content: url("../../images/assets/svg/bckg-links.png");
            @media screen and (max-width: 1183px) {
              content: none;
            }
          }
          .presentation {
            @media screen and (max-width: 1183px) {
              padding: 18px 25px;
            }
          }
          a{
            padding: 5px 25px;
            color: #ffffff;
            font-family: $ubuntuLight;
            font-size: 15px;
            text-transform: uppercase;
            text-decoration: none;
            border: 1px solid transparent;
            &:hover {
              border-color: #ceae60;
              color: #ceae60;
            }
            @media screen and (max-width: 1183px) {
              font-size: 22px;
              padding: 15px 5px;
            }
          }
        }
        .menu-item-41 {
          &::after {
            content: none;
          }
        }
      }
      .social__wrapper__ctn {
        .social__wrapper {
          list-style-type: none;
          padding-left: 1em;
          .social__item {
            @media screen and (max-width: 1183px) {
              padding: 10px 0;
            }
            .social__link {
              text-decoration: none;
              color: $yellow;
              font-family: $ubuntuLight;
              &:hover {
                border-color: $white;
              }
              span {
                display: none;
                @media screen and (max-width: 1183px) {
                  display: inline;
                  padding-right: 10px;
                }
              }
              i {
                border: 1px solid $yellow;
                border-radius: 50%;
                width: 25px;
                height: 25px;
                color: $yellow;
                font-size: 15px;
                padding: 5px 6.2px;
                &:hover {
                  color: $white;
                  border-color: $white;
                }
              }
            }
          }
        }
      }
    }
    .nav-primary--hide {
      @media screen and (max-width: 1183px) {
      display: none;
      }
    }
  }
  .navbar__hamburger {
    margin: 10px;
    cursor: pointer;
    .navbar__hamburger__line {
      display: block;
      width: 40px;
      height: 3px;
      margin-bottom: 10px;
      background-color: #fff;
    }
    @media screen and (min-width: 1183px) {
      display: none;
    }
  }
}
.header-pages {
  background-image: url("../../images/assets/images/background-fonce.jpg");
  position: relative;
}

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

You just need to remove the nav-primary–hide class in the HTML code. Then it behaves as you want.

Everything else looks fine!

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading