Hamburger Menu Code

Index.html Code

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Humburger Menu</title>
    <link rel="stylesheet" href="./style.css">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0-2/css/all.min.css" integrity="sha256-46r060N2LrChLLb5zowXQ72/iKKNiw/lAmygmHExk/o=" crossorigin="anonymous" />
</head>
<body>
        <nav>
            <div class="logo"><h1>Deltaty</h1></div>
            <div class="openMenu"><i class="fa fa-bars"></i></div>
            <ul class="mainMenu">
                <li><a href="#">Home</a></li>
                <li><a href="#">Products</a></li>
                <li><a href="#">Contact</a></li>
                <li><a href="#">About</a></li>
                <li><a href="#">Ali</a></li>
                <div class="closeMenu"><i class="fa fa-times"></i></div>
                <span class="icons">
                    <i class="fab fa-facebook"></i>
                    <i class="fab fa-instagram"></i>
                    <i class="fab fa-twitter"></i>
                    <i class="fab fa-github"></i>
                </span>
            </ul>
        </nav>


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


Style.css Code

* {
    box-sizing: border-box;
    margin: 0px;
    padding: 0px;
  }
  body {
    font-family: Arial, sans-serif;
  }
  nav {
    background: rgb(0, 0, 0);
    color: rgb(255, 255, 255);
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  nav .mainMenu {
    display: flex;
    list-style: none;
  }
  nav .mainMenu li a {
    display: inline-block;
    padding: 15px;
    text-decoration: none;
    text-transform: uppercase;
    color: rgb(255, 255, 255);
    font-size: 18px;
    transition: 0.2s ease;
  }
  nav .mainMenu li a:hover {
    background: rgb(255, 94, 0);
  }
  nav .openMenu {
    font-size: 2rem;
    margin: 20px;
    display: none;
    cursor: pointer;
  }
  nav .mainMenu .closeMenu,
  .icons i {
    font-size: 2rem;
    display: none;
    cursor: pointer;
  }
  .fa-facebook:hover {
    color: rgb(0, 110, 255);
  }
  .fa-twitter:hover {
    color: rgb(86, 154, 243);
  }
  .fa-instagram:hover {
    color: rgb(255, 0, 191);
  }
  .fa-github:hover {
    color: rgb(255, 123, 0);
  }
  nav .logo {
    margin: 6px;
    cursor: pointer;
    text-transform: uppercase;
  }
  @media (max-width: 800px) {
    nav .mainMenu {
      height: 100vh;
      position: fixed;
      top: 0px;
      right: 0px;
      left: 0px;
      z-index: 10;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      background: rgb(0, 0, 0);
      transition: top 1s ease 0s;
      display: none;
    }
    nav .mainMenu .closeMenu {
      display: block;
      position: absolute;
      top: 20px;
      right: 20px;
    }
    nav .openMenu {
      display: block;
    }
    nav .mainMenu li a:hover {
      background: none;
      color: rgb(255, 123, 0);
    }
    .icons i {
      display: inline-block;
      padding: 12px;
    }
  }
 
App.js Code

const mainMenu = document.querySelector('.mainMenu');
const closeMenu = document.querySelector('.closeMenu');
const openMenu = document.querySelector('.openMenu');
const menu_items = document.querySelectorAll('nav .mainMenu li a');




openMenu.addEventListener('click',show);
closeMenu.addEventListener('click',close);

// close menu when you click on a menu item
menu_items.forEach(item => {
    item.addEventListener('click',function(){
        close();
    })
})

function show(){
    mainMenu.style.display = 'flex';
    mainMenu.style.top = '0';
}
function close(){
    mainMenu.style.top = '-100%';
}

Comments

Popular posts from this blog