Адаптивная и динамическая навигация играет важную роль в веб-разработке, особенно для мобильных устройств. Пользователи ожидают, что навигация на сайтах будет удобной и интуитивно понятной независимо от используемого устройства. В этой статье мы узнаем, как создать адаптивное и динамическое навигационное меню для мобильных устройств с использованием чистого JavaScript, HTML и CSS.
Основы адаптивной навигации
Адаптивная навигация означает, что элементы навигационного меню автоматически подстраиваются под размер экрана устройства. Это достигается с помощью медиазапросов в CSS и JavaScript, которые динамически изменяют структуру и стили меню в зависимости от размеров экрана.
Преимущества адаптивной навигации
- Улучшенное пользовательское взаимодействие: пользователи могут легко ориентироваться по сайту на любых устройствах.
- Повышение скорости загрузки: адаптивная навигация помогает сократить время загрузки страниц за счет оптимизации контента для разных экранов.
- Лучшее SEO: поисковые системы предпочитают сайты, которые хорошо работают на мобильных устройствах.

- ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ нейросети DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ
- Где и как применять? Потестируем модель после установки на разных задачах
- Как дообучить модель под себя?
Создание HTML структуры
Первым шагом является создание HTML структуры для нашего навигационного меню. Пример простой структуры навигационного меню:
html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Адаптивная навигация</title> <link rel="stylesheet" href="styles.css"> </head> <body> <nav class="navbar"> <div class="navbar-brand">Мой сайт</div> <button class="navbar-toggle" id="navbar-toggle">☰</button> <ul class="navbar-menu" id="navbar-menu"> <li class="navbar-item"><a href="#">Главная</a></li> <li class="navbar-item"><a href="#">О нас</a></li> <li class="navbar-item"><a href="#">Услуги</a></li> <li class="navbar-item"><a href="#">Контакты</a></li> </ul> </nav> <script src="scripts.js"></script> </body> </html>
Стилизация с помощью CSS
Далее, создадим стили для нашего навигационного меню. Основная задача — сделать меню адаптивным с помощью медиазапросов.
css
/* styles.css */
body {
font-family: Arial, sans-serif;
}
.navbar {
display: flex;
justify-content: space-between;
align-items: center;
background-color: #333;
padding: 10px;
}
.navbar-brand {
color: #fff;
font-size: 1.5em;
}
.navbar-menu {
list-style-type: none;
display: flex;
margin: 0;
padding: 0;
}
.navbar-item {
margin-left: 15px;
}
.navbar-item a {
color: #fff;
text-decoration: none;
}
.navbar-toggle {
display: none;
font-size: 1.5em;
color: #fff;
background: none;
border: none;
cursor: pointer;
}
@media (max-width: 768px) {
.navbar-menu {
display: none;
flex-direction: column;
width: 100%;
}
.navbar-menu.active {
display: flex;
}
.navbar-toggle {
display: block;
}
.navbar-item {
margin: 10px 0;
}
}
Динамическое поведение с помощью JavaScript
Теперь добавим JavaScript для управления поведением меню на мобильных устройствах. Скрипт будет добавлять и удалять класс active у элемента меню при клике на кнопку.
javascript
// scripts.js
document.addEventListener('DOMContentLoaded', function() {
const navbarToggle = document.getElementById('navbar-toggle');
const navbarMenu = document.getElementById('navbar-menu');
navbarToggle.addEventListener('click', function() {
navbarMenu.classList.toggle('active');
});
});
Пример полного кода
Полный код, объединяющий HTML, CSS и JavaScript, выглядит следующим образом:
HTML
html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Адаптивная навигация</title> <link rel="stylesheet" href="styles.css"> </head> <body> <nav class="navbar"> <div class="navbar-brand">Мой сайт</div> <button class="navbar-toggle" id="navbar-toggle">☰</button> <ul class="navbar-menu" id="navbar-menu"> <li class="navbar-item"><a href="#">Главная</a></li> <li class="navbar-item"><a href="#">О нас</a></li> <li class="navbar-item"><a href="#">Услуги</a></li> <li class="navbar-item"><a href="#">Контакты</a></li> </ul> </nav> <script src="scripts.js"></script> </body> </html>
CSS
css
Копировать код
/* styles.css */
body {
font-family: Arial, sans-serif;
}
.navbar {
display: flex;
justify-content: space-between;
align-items: center;
background-color: #333;
padding: 10px;
}
.navbar-brand {
color: #fff;
font-size: 1.5em;
}
.navbar-menu {
list-style-type: none;
display: flex;
margin: 0;
padding: 0;
}
.navbar-item {
margin-left: 15px;
}
.navbar-item a {
color: #fff;
text-decoration: none;
}
.navbar-toggle {
display: none;
font-size: 1.5em;
color: #fff;
background: none;
border: none;
cursor: pointer;
}
@media (max-width: 768px) {
.navbar-menu {
display: none;
flex-direction: column;
width: 100%;
}
.navbar-menu.active {
display: flex;
}
.navbar-toggle {
display: block;
}
.navbar-item {
margin: 10px 0;
}
}
JavaScript
javascript
// scripts.js
document.addEventListener('DOMContentLoaded', function() {
const navbarToggle = document.getElementById('navbar-toggle');
const navbarMenu = document.getElementById('navbar-menu');
navbarToggle.addEventListener('click', function() {
navbarMenu.classList.toggle('active');
});
});
Заключение
Создание адаптивного и динамического навигационного меню на чистом JavaScript, HTML и CSS не только улучшает пользовательский опыт, но и повышает производительность вашего веб-приложения. Следуя приведенным выше шагам, вы сможете легко реализовать подобное меню на своем сайте. Это меню будет адаптироваться к разным устройствам, обеспечивая удобную и интуитивно понятную навигацию для пользователей.
- Освой нейросеть Perplexity и узнай, как пользоваться функционалом остальных ИИ в одном
- УЧАСТВОВАТЬ ЗА 0 РУБ.
- Расскажем, как получить подписку
- ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ нейросеть DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ