Bootstrap 3 多个菜单合并为一个移动菜单
[英] Bootstrap 3 multiple menus collapse into one for mobile
本文介绍了Bootstrap 3 多个菜单合并为一个移动菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我一直在与菜单斗争一段时间.我想要的是顶部菜单和侧面菜单.为了在移动设备上有用,两个菜单都需要折叠成可以在手机上访问的内容.这真的可能吗?还是我必须为不同的屏幕尺寸编写不同的解决方案?
谢谢
解决方案
html
<!-- 品牌和切换被分组以获得更好的移动显示--><div class="navbar-header"><button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"><span class="sr-only">切换导航</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span>按钮><a class="navbar-brand" href="#">Brand</a>
<!-- 收集导航链接、表单和其他用于切换的内容--><div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><ul class="nav navbar-nav"><li class="active"><a href="#">Link</a></li><li><a href="#">链接</a></li><li class="下拉菜单"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a><ul class="下拉菜单"><li><a href="#">动作</a></li><li><a href="#">另一个动作</a></li><li><a href="#">这里还有别的东西</a></li><li class="divider"></li><li><a href="#">分隔链接</a></li><li class="divider"></li><li><a href="#">一个单独的链接</a></li><form class="navbar-form navbar-left" role="search"><div class="form-group"><input type="text" class="form-control" placeholder="Search">
<button type="submit" class="btn btn-default">提交</button></表单><ul class="nav navbar-nav navbar-right"><li><a href="#">链接</a></li><li class="下拉菜单"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a><ul class="下拉菜单"><li><a href="#">动作</a></li><li><a href="#">另一个动作</a></li><li><a href="#">这里还有别的东西</a></li><li class="divider"></li><li><a href="#">分隔链接</a></li></div><!--/.navbar-collapse --></nav><div class="容器"><div class="row"><section class="col-sm-9">content</section><aside id="sidebar" class="col-sm-3 hidden-xs"><ul class="nav nav-pills nav-stacked"><li><a href="#">首页</a></li><li><a href="#">个人资料</a></li><li><a href="#">消息</a></li></一边>
javascript
$('#bs-example-navbar-collapse-1').on('show.bs.collapse', function () {$('#bs-example-navbar-collapse-1').append($('#sidebar').html());$('#bs-example-navbar-collapse-1 ul').last().removeClass('nav-pills nav-stacked').addClass('navbar navbar-nav');});$('#bs-example-navbar-collapse-1').on('hidden.bs.collapse', function () {$('#bs-example-navbar-collapse-1 ul:last-child').remove();});$(window).on('resize', function () {if (window.innerWidth > 768) {$('#bs-example-navbar-collapse-1').collapse('hide');}});
示例:http://bootply.com/106921
(导航栏)折叠会触发一些事件:隐藏、隐藏、显示和显示.(请参阅:http://getbootstrap.com/javascript/#collapse )使用此事件附加导航栏的侧边菜单内容.在 hidden
上再次删除它:remove last append element jquery
使用响应式实用程序在小型设备上隐藏您的侧边菜单 (http://getbootstrap.com/css/#responsive-utilities ).
窗口调整大小时未触发最后一个问题"折叠隐藏将在此处解决:https://github.com/twbs/bootstrap/issues/11653
I have been fighting with menus for a while now. What I want is both a top menu and a side menu. And in order to be useful on mobile devices, both menus need to collapse into something accessible on a phone. Is this actually possible? Or do I have to code different solutions for the different screen sizes?
Thanks
解决方案
html
<nav class="navbar navbar-default" role="navigation">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Brand</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
<li class="divider"></li>
<li><a href="#">One more separated link</a></li>
</ul>
</li>
</ul>
<form class="navbar-form navbar-left" role="search">
<div class="form-group">
<input type="text" class="form-control" placeholder="Search">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
<ul class="nav navbar-nav navbar-right">
<li><a href="#">Link</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Action</a></li>
<li><a href="#">Another action</a></li>
<li><a href="#">Something else here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</li>
</ul>
</div><!-- /.navbar-collapse -->
</nav>
<div class="container">
<div class="row">
<section class="col-sm-9">content</section>
<aside id="sidebar" class="col-sm-3 hidden-xs">
<ul class="nav nav-pills nav-stacked">
<li><a href="#">Home</a></li>
<li><a href="#">Profile</a></li>
<li><a href="#">Messages</a></li>
</ul>
</aside>
</div>
</div>
javascript
$('#bs-example-navbar-collapse-1').on('show.bs.collapse', function () {
$('#bs-example-navbar-collapse-1').append($('#sidebar').html());
$('#bs-example-navbar-collapse-1 ul').last().removeClass('nav-pills nav-stacked').addClass('navbar navbar-nav');
});
$('#bs-example-navbar-collapse-1').on('hidden.bs.collapse', function () {
$('#bs-example-navbar-collapse-1 ul:last-child').remove();
});
$(window).on('resize', function () {
if (window.innerWidth > 768) {$('#bs-example-navbar-collapse-1').collapse('hide');}
});
Example: http://bootply.com/106921
The (navbar) collapse triggers some events: hidden, hide, show and shown. (see: http://getbootstrap.com/javascript/#collapse ) use this events to append the content of your side menu to the navbar. Remove it again on hidden
: remove last append element jquery
Hide your side menu on small devices with the Responsive utilities (http://getbootstrap.com/css/#responsive-utilities ).
The last "problem" collapse hide isn't triggerd on window resize will be solved here: https://github.com/twbs/bootstrap/issues/11653
这篇关于Bootstrap 3 多个菜单合并为一个移动菜单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!