ЛУЧШИЙ САЙТ ДЛЯ ВЕБ-РАЗРАБОТЧИКОВ
Как сделать? Готовые сниппеты для сайта

Как сделать - Полноэкранная панель навигации


Узнайте, как создать полноэкранное оверлейное меню навигации на сайте.


Нажмите на кнопки ниже, чтобы увидеть, как это работает:

Попробуйте сами »

Создайте полноэкранную навигацию с наложением (оверлеем)

Шаг 1) Добавить HTML:

Пример

<!-- Оверлей -->
<div id="myNav" class="overlay">

  <!-- Кнопка закрытия оверлейной навигации -->
  <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>

  <!-- Наложение содержимого -->
  <div class="overlay-content">
    <a href="#">Про нас</a>
    <a href="#">Сервисы</a>
    <a href="#">Клиенты</a>
    <a href="#">Контакты</a>
  </div>

</div>

<!-- Используйте любой элемент, чтобы открыть / показать оверлейное меню навигации -->
<span onclick="openNav()">open</span>

Шаг 2) Добавить CSS:

Пример

/* Оверлей (фон) */
.overlay {
  /* Высота & ширина зависит от того, как вы хотите раскрыть оверлей (см. JS ниже) */   
  height: 100%;
  width: 0;
  position: fixed; /* Оставаться на месте */
  z-index: 1; /* Расположиться сверху */
  left: 0;
  top: 0;
  background-color: rgb(0,0,0); /* Черный резервный цвет */
  background-color: rgba(0,0,0, 0.9); /* Черный с/непрозрачностью */
  overflow-x: hidden; /* Отключить горизонтальную прокрутку */
  transition: 0.5s; /* 0.5 секундный эффект перехода, чтобы сдвинуть внутрь или сдвинуть вниз (высота или ширина, в зависимости от раскрытия) */
}

/* Разместите контент внутри оверлея */
.overlay-content {
  position: relative;
  top: 25%; /* 25% сверху */
  width: 100%; /* 100% в ширину */
  text-align: center; /* Центрирование текста/ссылок */
  margin-top: 30px; /* Верхнее поле 30px, чтобы избежать конфликта с кнопкой закрытия на небольших экранах */
}

/* Ссылки навигации внутри оверлея */
.overlay a {
  padding: 8px;
  text-decoration: none;
  font-size: 36px;
  color: #818181;
  display: block; /* Отображать блок вместо встроенного */
  transition: 0.3s; /* Эффекты перехода при наведении (цвет) */
}

/* Когда вы наводите указатель мыши на ссылки навигации, меняется их цвет */
.overlay a:hover, .overlay a:focus {
  color: #f1f1f1;
}

/* Поместите кнопку закрытия (верхний правый угол) */
.overlay .closebtn {
  position: absolute;
  top: 20px;
  right: 45px;
  font-size: 60px;
}

/* Когда высота экрана меньше 450 пикселей, измените размер шрифта ссылок и снова поместите кнопку закрытия, чтобы они не перекрывались */
@media screen and (max-height: 450px) {
  .overlay a {font-size: 20px}
  .overlay .closebtn {
    font-size: 40px;
    top: 15px;
    right: 35px;
  }
}

Шаг 3) Добавить JavaScript:

Пример ниже скользит в меню навигации наложения слева направо (ширина от 0 до 100%), когда оно срабатывает:

Выскальзывание со стороны

/* Открывается при нажатии на элемент span */
function openNav() {
  document.getElementById("myNav").style.width = "100%";
}

/* Закрывается при нажатии на символ "x" внутри оверлея */
function closeNav() {
  document.getElementById("myNav").style.width = "0%";
}
Попробуйте сами »

Пример ниже скользит в меню навигации оверлея сверху вниз (высота от 0 до 100%).

Примечание: Обратите внимание, что в этом примере CSS немного отличается от приведенного выше (высота по умолчанию теперь равна 0, ширина равна 100%, а overflow-y скрыт (отключите вертикальную прокрутку, за исключением маленьких экранов)):

Скольжение сверху вниз

/* Открыть */
function openNav() {
  document.getElementById("myNav").style.height = "100%";
}

/* Закрыть */
function closeNav() {
  document.getElementById("myNav").style.height = "0%";
}
Попробуйте сами »

В этом примере открывается меню навигации без анимации:

Открыть меню без анимации

/* Открыть */
function openNav() {
  document.getElementById("myNav").style.display = "block";
}

/* Закрыть */
function closeNav() {
  document.getElementById("myNav").style.display = "none";
}
Попробуйте сами »

Совет: Перейдите в учебник CSS Навбар на нашем сайте W3Schools на русском, чтобы узнать больше о панелях навигации.