Navigation Menu Bar Using HTML, CSS and JavaScript

Hello wizards, I hope you are doing great. Today in this blog you’ll learn how to create the "Navigation Menu Bar" project using HTML, CSS & JavaScript. 

Preview 

In the above video, you’ve seen the preview of the "Navigation Menu Bar" project and I hope now you are able to create this type of project. If not, I have provided all the HTML CSS, and JavaScript code below. 

Navigation Menu Bar [Source Code] 

To get the following HTML, CSS & JS code for the Navigation Menu Bar project. You need to create three files one is an HTML file, the second one is a CSS file and another one is a JS file. After creating these three files then you can copy-paste the given codes on your document. 

Remember, you’ve to create a file with a .html extension for HTML code, a .css extension for CSS code, and .js for JavaScript code.

You can also download all source code files from the given download button.

HTML
<!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>Navigation Menu Bar</title>

    <link rel="stylesheet" href="style.css">

    <!-- Font awesome cdn -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"
        integrity="sha512-iecdLmaskl7CVkqkXNQ/ZH/XLlvWZOJyj7Yy7tcenmpD1ypASozpmT/E0iPtmFIB46ZmdtAc9eNBvH0H/ZpiBw=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />

</head>

<body>

    <div class="container">

        <h1>Navigation Menu Bar</h1>
        <ul class="allItems">
            <li class="item">
                <i class="fa-solid fa-house"></i>
                <div class="title">Home</div>
            </li>
            <li class="item active">
                <i class="fa-solid fa-address-card"></i>
                <div class="title">About</div>
            </li>
            <li class="item">
                <i class="fa-solid fa-toolbox"></i>
                <div class="title">Services</div>
            </li>
            <li class="item">
                <i class="fa-brands fa-blogger"></i>
                <div class="title">Blog</div>
            </li>
            <li class="item">
                <i class="fa-solid fa-headset"></i>
                <div class="title">Contact</div>
            </li>
            <div class="dot"></div>

        </ul>


    </div>


    <script src="index.js"></script>
</body>

</html>
CSS
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600;700;800;900&display=swap");

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "Poppins", sans-serif;
}

body {
  background: white;
}

.container {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  min-height: 100vh;
}

h1 {
  margin-bottom: 20px;
}

.allItems {
  position: relative;
  width: 600px;
  height: 100px;
  list-style: none;
  color: white;
  background-color: blueviolet;
  border-radius: 50px;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: all 0.4s ease-in-out;
}

.item {
  width: 100px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  cursor: pointer;
  transition: all 0.4s ease-in-out;
}

.item.active {
  transform: translateY(-10px);
}

.item i {
  font-size: 30px;
}

.item .title {
  font-size: 12px;
  margin-bottom: -25px;
  opacity: 0;
}

.item.active .title {
  opacity: 1;
}

.dot {
  width: 40px;
  height: 40px;
  border: 9px solid white;
  border-radius: 50%;
  background-color: blueviolet;
  position: absolute;
  left: 80px;
  top: -20px;
  transition: all 0.3s ease-in-out;
}

.dot::after,
.dot::before {
  content: "";
  width: 22px;
  height: 22px;
  position: absolute;
  bottom: -11px;
  background-color: blueviolet;
  box-shadow: 0px -7px white;
}

.dot::after {
  left: -24px;
  border-top-right-radius: 25px;
}

.dot::before {
  right: -24px;
  border-top-left-radius: 25px;
}
JavaScript
const itemEls = document.querySelectorAll(".item");

itemEls.forEach((event,index) => {
    event.addEventListener("click",()=>{
        
        // remove previous active class and adding active class to user clicked icon.
        document.querySelector(".active").classList.remove("active")
        event.classList.add("active");
      
        // moving dot to the place of active class icon
		const dotEl = document.querySelector(".dot");
        dotEl.style.left = `${index*100 + 80}px`
    })
});
You have to wait 15 seconds.

Generating Download Link...

Post a Comment

Previous Post Next Post