Скрываем меню навигации при прокрутке страницы

 alexei 28/02/2021 - 09:00

Сниппет, позволяющий скрыть меню навигации сайта во время прокручивания страницы при помощи CSS и JavaScript.



Как сделать, чтобы при прокручивании главное меню скрывалось

Шаг 1) Добавляем HTML:

Создаем меню навигации:


<div id="navbar">
  <a href="#home">Главная</a>
  <a href="#news">Новости</a>
  <a href="#contact">Контакты</a>
</div>

Шаг 2) Добавляем CSS:

Задаем стили для меню навигации:


#navbar {
  background-color: #333; /* Черный цвет фона */
  position: fixed; /* Зафиксируем меню */
  top: 0; /* Прижмем к верху */
  width: 100%; /* Растянем на всю ширину */
  transition: top 0.3s; /* Эффект трансформации при выдвижении вниз (и вверх) */
}

/* Стили ссылок меню */
#navbar a {
  float: left;
  display: block;
  color: white;
  text-align: center;
  padding: 15px;
  text-decoration: none;
}

#navbar a:hover {
  background-color: #ddd;
  color: black;
}

Шаг 3) Добавляем JavaScript:


/* Когда пользователь прокручивает страницу вниз, скрываем меню.
  Когда пользователь прокручивает страницу вверх, показываем меню. */
var prevScrollpos = window.pageYOffset;
window.onscroll = function() {
  var currentScrollPos = window.pageYOffset;
  if (prevScrollpos > currentScrollPos) {
    document.getElementById("navbar").style.top = "0";
  } else {
    document.getElementById("navbar").style.top = "-50px";
  }
  prevScrollpos = currentScrollPos;
}