使用Bootstrap 5和无jQuery自定义响应式Navbar(Priority Nav)
尝试使用Vanilla JS创建一个Bootstrap 5自定义响应式Navbar(优先级NAV),因为我有数十个菜单项目,而且我无法使用jQuery,
如您所知,Bootstrap navbars navbars navbars da t采用屏幕宽度,它被拆分为菜单溢出所引入的下一行。 我想通过让他们移动到“更多...”菜单 - 项目来停止菜单溢出到下一行。
我想通过Bootstrap 5和Vanilla Javascript custom responsive navbar mockup
I did try to modify
var elemWidth, fitCount, varWidth = 0,
ctr,
$menu = $("ul#menu"),
$collectedSet;
ctr = $menu.children().length;
$menu.children().each(function() {
varWidth += $(this).outerWidth();
});
collect();
$(window).resize(collect);
function collect() {
elemWidth = $menu.width();
fitCount = Math.floor((elemWidth / varWidth) * ctr) - 1;
$menu.children().css({
"display": "block",
"width": "auto"
});
$collectedSet = $menu.children(":gt(" + fitCount + ")");
$("#submenu").empty().append($collectedSet.clone());
$collectedSet.css({
"display": "none",
"width": "0"
});
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
div.menuwrap {
position: relative;
background-color: #ccc;
height: 48px;
overflow: visible;
}
ul.menu {
height: 48px;
max-width: 80%;
overflow: hidden;
}
ul.menu>li {
display: block;
float: left;
height: auto;
white-space: nowrap;
padding: 4px 8px;
}
ul.collect {
position: absolute;
right: 0;
top: 0;
padding: 4px 8px;
overflow: visible;
}
ul.collect ul.dropdown-menu {
right: 0;
left: auto;
}
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" />
<div class="menuwrap">
<ul id="menu" class="nav nav-pills menu">
<li class="active"><a href="#">Dashboard</a></li>
<li><a href="#">Docs</a></li>
<li><a href="#">Docs 2</a></li>
<li><a href="#">Docs 3</a></li>
<li><a href="#">Docs 4</a></li>
<li><a href="#">Data</a></li>
<li><a href="#">iWeb</a></li>
<li><a href="#">Program</a></li>
</ul>
<ul class="nav nav-pills collect">
<li class="dropdown">
<a role="button" href="#" data-toggle="dropdown" class="dropdown-toggle">
More <span class="caret"></span>
</a>
<ul id="submenu" class="dropdown-menu"></ul>
</li>
</ul>
</div>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果有人遇到同样的问题,我设法在此优先级nav插件
In case anyone had the same issue, I managed to do it in this jsfiddle using the Priority Nav plugin