Как создать анимированное горизонтальное меню с индикатором | How to Create Animated Navbar Menu with Indicator using HTML CSS and JavaScript

Всем Привет! В этом видео мы создадим анимированное  горизонтальное меню панели навигации с индикатором, используя HTML CSS и JavaScript. Надеюсь, это видео будет полезным для вас. Скачать коды можно по ссылке ниже.

Кроме того, если у вас есть какие-либо вопросы, предложения или отзывы, то оставьте комментарий ниже. Ваши отзывы помогают нам создавать более ценный контент.

HTML КОД:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Animated Navbar Menu</title>

    <!--css file-->
    <link rel="stylesheet" href="styles.css" />
  </head>
  <body>
    <nav class="nav">
      <a href="#" class="item active">Home</a>
      <a href="#" class="item">Services</a>
      <a href="#" class="item">Reviews</a>
      <a href="#" class="item">About</a>
      <a href="#" class="item">Contact</a>

      <span class="indicator"></span>
    </nav>

    <script src="app.js"></script>
  </body>
</html>
CSS КОД:

/* Google Fonts(Poppins) */
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600;700;800&display=swap");

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

body {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f2f2f2;
}

.nav {
  position: relative;
  display: inline-flex;
  max-width: 100%;
  background: #fff;
  padding: 0 20px;
  border-radius: 40px;
  box-shadow: 0 10px 40px rgba(159, 162, 177, 0.8);
  overflow: hidden;
}

.nav .item {
  color: #83818c;
  padding: 20px;
  margin: 0 6px;
  font-size: 18px;
  font-weight: 500;
  position: relative;
  transition: 0.5s;
}

.nav .item::before {
  position: absolute;
  content: "";
  width: 100%;
  height: 5px;
  background: #dfe2ea;
  border-radius: 8px 8px 0 0;
  left: 0;
  bottom: -6px;
  opacity: 0;
  transition: 0.5s;
}

.nav .item:not(.active):hover:before {
  opacity: 1;
  bottom: 0;
}

.nav .item:not(.active):hover {
  color: #333;
}

.nav .item.active {
  color: #0b8c4c;
}

.nav .indicator {
  position: absolute;
  width: var(--widthJS);
  height: 5px;
  background: #0b8c4c;
  left: 0;
  bottom: 0;
  transform: translateX(var(--transformJS));
  border-radius: 8px 8px 0 0;
  transition: 0.5s;
}
JAVASCRIPT КОД:

let navItems = document.querySelectorAll(".item");
let indicator = document.querySelector(".indicator");

let activeLink = document.querySelector(".active");
changeIndicator(activeLink);

navItems.forEach((item) =>
  item.addEventListener("click", () => {
    document.querySelector(".active").classList.remove("active");

    item.classList.add("active");

    changeIndicator(item);
  })
);

function changeIndicator(item) {
  indicator.style.setProperty("--transformJS", `${item.offsetLeft}px`);
  indicator.style.setProperty("--widthJS", `${item.offsetWidth}px`);
}


0 Комментарии

Подписывайтесь на Boosty и скачивай БЕСПЛАТНО любые файлы и скрипты!!!

🔥 Стать автором на Boosty »