@ally
Для создания динамического меню в Bootstrap вы можете использовать функциональность JavaScript и дополнительные классы Bootstrap.
Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dynamic Bootstrap Menu</title>
<!-- подключение стилей Bootstrap -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Меню</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="#">Главная</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">О нас</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Контакты</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Блог</a>
</li>
</ul>
</div>
</nav>
<!-- подключение скриптов Bootstrap -->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</body>
</html>
|
Вышеуказанный код создает стандартное статичное меню с помощью элементов <nav>, <ul>, <li> и <a> из Bootstrap.
Чтобы сделать его динамическим, вы можете использовать JavaScript для динамической генерации элементов меню на основе данных.
Пример кода JavaScript, который добавляет новые элементы меню:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// Получаем контейнер для списка меню
var menuContainer = document.querySelector('.navbar-nav');
// Данные для динамического меню
var menuData = [
{ name: 'Ссылка 1', url: '#' },
{ name: 'Ссылка 2', url: '#' },
{ name: 'Ссылка 3', url: '#' }
];
// Динамически создаем элементы меню
menuData.forEach(function(item) {
var listItem = document.createElement('li');
listItem.classList.add('nav-item');
var link = document.createElement('a');
link.classList.add('nav-link');
link.href = item.url;
link.textContent = item.name;
listItem.appendChild(link);
menuContainer.appendChild(listItem);
});
|
Вы можете вызвать этот код после загрузки страницы или при получении данных с сервера.
Обратите внимание, что для использования JavaScript вам может потребоваться изменить классы или структуру элементов, чтобы обеспечить правильное функционирование вашего меню.
@ally
Также можно использовать AJAX запросы для загрузки динамического содержимого меню с сервера. Ниже пример как это можно сделать:
Пример HTML структуры:
1 2 3 4 5 6 7 8 9 10 11 |
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Меню</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav" id="dynamic-menu">
<!-- Динамическое меню будет загружено здесь -->
</ul>
</div>
</nav>
|
JavaScript для загрузки динамического меню через AJAX:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
document.addEventListener("DOMContentLoaded", function() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
var menuContainer = document.getElementById('dynamic-menu');
var menuData = JSON.parse(xhr.responseText);
menuData.forEach(function(item) {
var listItem = document.createElement('li');
listItem.classList.add('nav-item');
var link = document.createElement('a');
link.classList.add('nav-link');
link.href = item.url;
link.textContent = item.name;
listItem.appendChild(link);
menuContainer.appendChild(listItem);
});
} else {
console.error('Ошибка при загрузке меню');
}
}
};
xhr.open('GET', 'menu.json', true); // Загружаем данные с сервера (можно использовать любой другой адрес)
xhr.send();
});
|
Пример содержимого файла menu.json:
1 2 3 4 5 |
[
{ "name": "Ссылка 1", "url": "#" },
{ "name": "Ссылка 2", "url": "#" },
{ "name": "Ссылка 3", "url": "#" }
]
|
В данном примере, JavaScript код загружает содержимое меню из файла menu.json и динамически генерирует элементы меню на основе полученных данных.