Обратите внимание, что я спрашиваю не о том, как выровнять элементы в меню navbr (влево или вправо), а о том, как динамически перемещать элементы из панели навигации в выпадающий список.
Я используюBootstrap 4.1 в моем проекте.Мое главное главное меню содержит много ссылок.Последний элемент - это выпадающий список, который содержит дополнительные ссылки: ![Bootstrap navbar](https://i.stack.imgur.com/fCxUO.png)
Я хочу, чтобы при изменении размера окна, нужным элементам, для которых не хватает места в заголовке,быть перемещенным в выпадающий элемент.
Что я хочу: ![Bootstrap wanted functionality](https://i.stack.imgur.com/bNwkB.png)
Но при изменении размера элементы уменьшаются.Затем для «md» (и меньших) точек останова активируется функция навигационной панели по умолчанию:
![Bootstrap mobile navbar](https://i.stack.imgur.com/XHrCq.png)
Решения с flexbox также приемлемы,Ссылка на простую демонстрацию с навигационной панелью Bootstrap по умолчанию: CodePen
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavDropdown">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricing</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Menu item 4</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Menu item 5</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Menu item 6</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Menu item 7</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Menu item 8</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown Menu
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<a class="dropdown-item" href="#">Menu item 9</a>
<a class="dropdown-item" href="#">Menu item 10</a>
<a class="dropdown-item" href="#">About</a>
<a class="dropdown-item" href="#">Help</a>
<a class="dropdown-item" href="#">Sign out</a>
</div>
</li>
</ul>
</div>
</nav>
Спасибо!
РЕДАКТИРОВАТЬ:
Этофункция изменения размера окна, над которой я сейчас работаю:
let addMenu = $("#navbarNavDropdown > ul >li.dropdown"),
addMenuList = addMenu.children("ul"),
menuItems = $("#navbarNavDropdown > ul > li:visible:not('.dropdown')");
function _resize() {
var itemsWidth = 0,
startWrap = false,
navWidth = $("#navbarNavDropdown").width() - addMenu.width();
menuItems.each(function () {
if (startWrap == false) {
if (itemsWidth + $(this).width() < navWidth) {
itemsWidth += $(this).width();
}
else {
startWrap = true;
addMenuList.prepend(this);
}
}
else {
addMenuList.prepend(this);
}
});
}
window.onresize = _resize;
Ссылка выше также обновлена.
Работает, когда экран меньше, ноМне нужно реализовать:
- при увеличении ширины экрана;
- в точке останова "md" (или меньше), чтобы использовать функциональность начальной загрузки по умолчанию