Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- HTML
- <!DOCTYPE html>
- <html lang="en-US">
- <head>
- <meta charset="utf-8" />
- <meta name="viewport" content="width=device-width" />
- <link rel="stylesheet" href="./glnavigation-styles.css">
- <link rel="stylesheet" href="https://use.typekit.net/fmn5vrf.css">
- <title>Garden Living Navigation</title>
- </head>
- <body>
- <nav>
- <div class="logo">
- <a href="#"><img src="./images/Gardenliving-full-logo.png" alt="Logo"></a>
- </div>
- <ul id="navMenu">
- <!-- OUTDOOR KITCHENS MENU -->
- <li class="nav-item">
- <a href="#" class="nav-link">Outdoor Kitchens</a>
- <ul class="kitchen-sub-items second-layer">
- <li>
- <a href="#">Appliances</a>
- <ul class="third-layer">
- <li><a href="#" class="nav-link">LYNX</a></li>
- <li><a href="#" class="nav-link">COYOTE</a></li>
- <li><a href="#" class="nav-link">CROWN VERITY</a></li>
- <li><a href="#" class="nav-link">HESTAN</a></li>
- <li><a href="#" class="nav-link">BIG GREEN EGG</a></li>
- <li><a href="#" class="nav-link">ALFRESCO</a></li>
- <li><a href="#" class="nav-link">FIRE MAGIC</a></li>
- <li><a href="#" class="nav-link">PERLICK</a></li>
- <li><a href="#" class="nav-link">EVO</a></li>
- <li><a href="#" class="nav-link">FONTANA</a></li>
- <li><a href="#" class="nav-link">WOLF</a></li>
- <li><a href="#" class="nav-link">BLAZE</a></li>
- </ul>
- </li>
- <li><a href="#">CABINETRY</a></li>
- <li><a href="#">COUNTERTOPS</a></li>
- </ul>
- </li>
- <!-- CABANA X MENU ITEM -->
- <li><a href="#" class="nav-item">CabanaX</a></li>
- <!-- PERGOLA X MENU -->
- <li>
- <a href="#" class="nav-item">PergolaX</a>
- <ul class="second-layer">
- <li><a href="#">SMART PERGOLA ACCESSORIES</a></li>
- <li><a href="#">SMART PERGOLAS</a></li>
- <li><a href="#">WHY STRUXURE PERGOLAS</a></li>
- </ul>
- </li>
- <!-- FIRE FEATURES MENU ITEM -->
- <li><a href="#" class="nav-item">Fire Features</a></li>
- <!-- GALLERY MENU ITEMS -->
- <li><a href="#" class="nav-item">Gallery</a>
- <ul class="second-layer">
- <li><a href="#">OUTDOOR KITCHENS GALLERY</a></li>
- <li><a href="#">CABANA X GALLERY</a></li>
- <li><a href="#">PERGOLA X GALLERY</a></li>
- <li><a href="#">OUTDOOR LIVING GALLERY</a></li>
- </ul>
- </li>
- <!-- CONTACT MENU ITEM -->
- <li><a href="#" class="nav-item">Contact</a></li>
- </ul>
- <div class="hamburger">
- <span class="bar"></span>
- <span class="bar"></span>
- <span class="bar"></span>
- </div>
- </nav>
- </body>
- <script src="glnavigation.js"></script>
- </html>
- CSS
- /* Desktop View */
- body{
- margin:0px
- }
- #header {
- display: none;
- }
- img {
- height: auto;
- width: auto;
- max-height: 5vh;;
- max-width: 30vw;
- }
- nav {
- display: flex;
- justify-content: space-between;
- align-items: center;
- height: 10VH;
- width: auto;
- font-family: "futura-pt", sans- serif;
- font-weight: 400;
- font-style: normal;
- text-transform: uppercase;
- font-size: 18px;
- color: black;
- z-index: 100;
- position:relative;
- }
- .logo {
- flex: 1;
- padding: 0;
- margin: 0;
- width: auto;
- height: auto;
- }
- .logo img
- {
- margin: 0 10%;
- }
- #navMenu {
- display: flex;
- flex: 1;
- justify-content: flex-end;
- }
- #navMenu li {
- margin: 0 1%;
- }
- ul#navMenu {
- padding:0px;
- margin:0px;
- width: auto;
- list-style:none;
- position:relative;
- /* background-color: bisque; */
- }
- ul#navMenu ul {
- position:absolute;
- left:0;
- top:100%;
- display:none;
- padding:0px;
- margin:0px;
- }
- ul#navMenu li {
- display:inline;
- float:left;
- position:relative;
- }
- ul#navMenu a {
- text-decoration:none;
- padding: 5px 5px;
- width: auto;
- color: black;
- float:left;
- text-align:left;
- /* background-color: grey; */
- min-width:max-content;
- transition-duration: 0.5s;
- }
- ul#navMenu a:hover {
- color:#00A7E1;
- transition-duration: 0.5s;
- }
- ul#navMenu ul ul {
- top:0;
- left:100%;
- }
- ul#navMenu li:hover ul ul {
- display:none;
- transition-duration: 0.5s;
- }
- ul#navMenu ul li:hover ul {
- display:block;
- /* background: #f5f5f5; */
- transition-duration: 0.5s;
- }
- ul#navMenu li:hover ul {
- display:block;
- }
- ul#navMenu ul a {
- width:150px;
- }
- ul#navMenu ul li {
- display:block;
- margin:0px;
- }
- /* CSS for hamburger menu icon */
- .hamburger {
- display: none;
- }
- .bar {
- display: block;
- width: 22px;
- height: 1.5px;
- margin: 5px auto;
- -webkit-transition: all 0.3s ease-in-out;
- transition: all 0.3s ease-in-out;
- background-color: #101010;
- }
- /* MEDIA QUERY FOR MOBILE */
- @media only screen and (max-width: 1080px) {
- body {
- overflow-x: hidden; }
- #navMenu {
- position: fixed;
- top: 25rem;
- right: -90%;
- flex-direction: column;
- /* background-color: #fff; */
- width: 30vw;
- border-radius: 10px;
- text-align: center;
- transition: 1s;
- box-shadow:
- 0 10px 27px rgba(0, 0, 0, 0.05);
- height: 100vh;
- display: flex;
- align-items: flex-start;
- justify-content: flex-start;
- font-size: 1.8vh;
- }
- #navMenu.active {
- right: 0;
- display: flex;
- align-items: flex-start;
- justify-content: flex-start;
- /* background-color: aquamarine; */
- }
- /* hamburger animations */
- .hamburger {
- display: block;
- cursor: pointer;
- margin-right: 3%;
- }
- .hamburger.active .bar:nth-child(2) {
- opacity: 0;
- }
- .hamburger.active .bar:nth-child(1) {
- transform: translateY(8px) rotate(45deg);
- }
- .hamburger.active .bar:nth-child(3) {
- transform: translateY(-8px) rotate(-45deg);
- }
- ul#navMenu ul {
- position:static;
- padding:0px;
- margin:0px;
- margin-left: 25%;
- background-color: blue;
- }
- ul#navMenu {
- padding:7%;
- margin-top: 40%;
- width: auto;
- list-style:none;
- overflow: hidden;
- }
- .second-layer {
- width: 25vw;
- background-color: blue;
- }
- #navMenu ul li:nth-child(1) ul {
- position: absolute;
- top: calc(100% + 10px);
- left: 0;
- min-width: 230px;
- display: none;
- padding-top: 10px;
- z-index: 1;
- background-color: #fff;
- border: 1px solid #ccc;
- box-shadow: 0 10px 27px rgba(0, 0, 0, 0.05);
- }
- #navMenu ul li:nth-child(2) ul {
- position: absolute;
- top: calc(100% + 10px);
- left: 0;
- min-width: 230px;
- display: none;
- padding-top: 10px;
- z-index: 1;
- background-color: #fff;
- border: 1px solid #ccc;
- box-shadow: 0 10px 27px rgba(0, 0, 0, 0.05);
- }
- .kitchen-sub-items {
- pointer-events: auto;
- }
- #navMenu .kitchen-sub-items ul {
- display: none;
- position: absolute;
- top: 0;
- left: 100%;
- z-index: 999;
- }
- #navMenu .kitchen-sub-items:hover > ul,
- #navMenu .kitchen-sub-items ul:hover {
- display: block;
- }
- #navMenu ul li:nth-child(1):hover ul,
- #navMenu ul li:nth-child(2):hover ul {
- display: block;
- }
- }
- const hamburger = document.querySelector(".hamburger");
- const navMenu = document.querySelector("#navMenu");
- hamburger.addEventListener("click", mobileMenu);
- function mobileMenu(event) {
- hamburger.classList.toggle("active");
- navMenu.classList.toggle("active");
- event.stopPropagation(); // add this line to prevent event propagation
- }
- const navLink = document.querySelectorAll(".nav-link");
- navLink.forEach(n => n.addEventListener("click", closeMenu));
- function closeMenu() {
- hamburger.classList.remove("active");
- navMenu.classList.remove("active");
- }
- const subMenu = document.querySelectorAll('.kitchen-sub-items');
- subMenu.forEach(function (item) {
- const subList = item.querySelector('ul');
- item.addEventListener('mouseenter', function () {
- subList.classList.add('active');
- });
- });
- navMenu.addEventListener('mousemove', function(e) {
- // check if viewport matches mobile media query
- if (window.matchMedia("(max-width: 1080px)").matches) {
- const subMenuItems = document.querySelectorAll('.sub-menu');
- subMenuItems.forEach(function (item) {
- const rect = item.getBoundingClientRect();
- const isInSubMenu =
- rect.left <= e.clientX &&
- rect.right >= e.clientX &&
- rect.top <= e.clientY &&
- rect.bottom >= e.clientY;
- if (isInSubMenu) {
- item.classList.add('active');
- } else {
- item.classList.remove('active');
- }
- });
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment