Здесь вы узнаете, как сделать полноэкранное оверлейное (overlay) меню навигации.
Нажмите на кнопку внизу, чтобы увидеть, как это работает:
Попробовать самому »
Как сделать полноэкранное оверлейное меню навигации
Шаг 1) Добавляем HTML:
Пример
<!-- Оверлей -->
<div id="myNav" class="overlay">
<!-- Кнопка, чтобы закрыть оверлей с меню -->
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">×</a>
<!-- Содержимое оверлея -->
<div class="overlay-content">
<a href="#">О нас</a>
<a href="#">Услуги</a>
<a href="#">Клиенты</a>
<a href="#">Контакты</a>
</div>
</div>
<!-- Можно использовать любой элемент, чтобы открывать оверлейное меню -->
<span onclick="openNav()">открыть</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; /* эффект перехода для плавного выезда из стороны или сверху (высота или ширина в зависимости от установок) */
}
/* Расположение содержимого внутри оверлея */
.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;
}
/* Когда высота экрана меньше 450px, изменяется размер шрифта ссылок и
расположение кнопки закрытия, чтобы они не перекрывались */
@media screen and (max-height: 450px) {
.overlay a {font-size: 20px}
.overlay .closebtn {
font-size: 40px;
top: 15px;
right: 35px;
}
}
Шаг 3) Добавляем JavaScript:
В следующем примере при нажатии на кнопку активации оверлейное меню навигации выезжает слева направо (ширина меняется 0 до 100%):
Меню выезжает слева направо
/* Открываем меню, когда нажимают на элемент активации */
function openNav() {
document.getElementById("myNav").style.width = "100%";
}
/* Закрываем меню, когда нажимают на символ "x" внутри оверлея */
function closeNav() {
document.getElementById("myNav").style.width = "0%";
}
Попробовать самому »В следующем примере при нажатии на кнопку активации оверлейное меню навигации выезжает сверху вниз (высота меняется 0 до 100%):
Обратите внимание, что для этого примера CSS стили немного другие: height: 0;
, width: 100%;
, overlay-y: hidden;
(запрещает вертикальную прокрутку за исключением маленьких экранов).
Меню выезжает сверху вниз
/* Открыть */
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";
}
Попробовать самому »