megclaypool
5/21/2017 - 5:27 AM

Bootstrap Responsive Sidebar Menu

[Bootstrap Responsive Sidebar Menu]

function htmlbodyHeightUpdate(){
    var height3 = $( window ).height()
    var height1 = $('.nav').height()+50
    height2 = $('.main').height()
    if(height2 > height3) {
        $('html').height(Math.max(height1,height3,height2)+10);
        $('body').height(Math.max(height1,height3,height2)+10);
    }
    else {
        $('html').height(Math.max(height1,height3,height2));
    $('body').height(Math.max(height1,height3,height2));
    }
}

$(document).ready(function () {
    htmlbodyHeightUpdate()
    $( window ).resize(function() {
        htmlbodyHeightUpdate()
    });
    $( window ).scroll(function() {
    height2 = $('.main').height()
    htmlbodyHeightUpdate()
    });
});
<nav class="navbar navbar-inverse sidebar" role="navigation">
    <div class="container-fluid">
		<!-- 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-sidebar-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-sidebar-navbar-collapse-1">
			<ul class="nav navbar-nav">
				<li class="active"><a href="#">Home<span style="font-size:16px;" class="pull-right hidden-xs showopacity glyphicon glyphicon-home"></span></a></li>
				<li ><a href="#">Profile<span style="font-size:16px;" class="pull-right hidden-xs showopacity glyphicon glyphicon-user"></span></a></li>
				<li ><a href="#">Messages<span style="font-size:16px;" class="pull-right hidden-xs showopacity glyphicon glyphicon-envelope"></span></a></li>
				<li class="dropdown">
					<a href="#" class="dropdown-toggle" data-toggle="dropdown">Settings <span class="caret"></span><span style="font-size:16px;" class="pull-right hidden-xs showopacity glyphicon glyphicon-cog"></span></a>
					<ul class="dropdown-menu forAnimate" role="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>
				<li><a href="#">Home<span style="font-size:16px;" class="pull-right hidden-xs showopacity glyphicon glyphicon-home"></span></a></li>
				<li ><a href="#">Profile<span style="font-size:16px;" class="pull-right hidden-xs showopacity glyphicon glyphicon-user"></span></a></li>
				<li ><a href="#">Messages<span style="font-size:16px;" class="pull-right hidden-xs showopacity glyphicon glyphicon-envelope"></span></a></li>
				<li class="dropdown">
					<a href="#" class="dropdown-toggle" data-toggle="dropdown">Settings <span class="caret"></span><span style="font-size:16px;" class="pull-right hidden-xs showopacity glyphicon glyphicon-cog"></span></a>
					<ul class="dropdown-menu forAnimate" role="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>
		</div>
	</div>
</nav>
<div class="main">
<!-- Content Here -->
</div>
body,html {
    height: 100%;
}

/* remove outer padding */
.main .row {
    padding: 0;
    margin: 0;
}

/*Remove rounded corners*/

nav.sidebar.navbar {
    border-radius: 0;
}

nav.sidebar, .main {
    -webkit-transition: margin 200ms ease-out;
    -moz-transition: margin 200ms ease-out;
    -o-transition: margin 200ms ease-out;
    transition: margin 200ms ease-out;
}

/* Add gap to nav and right windows.*/
.main {
    padding: 10px 10px 0 10px;
}

/* .....NavBar: Icon only with coloring/layout.....*/

/*small/medium side display*/
@media (min-width: 768px) {

/*Allow main to be next to Nav*/
.main {
    position: absolute;
    width: calc(100% - 40px); /*keeps 100% minus nav size*/
    margin-left: 40px;
    float: right;
}

/*lets nav bar to be showed on mouseover*/
nav.sidebar:hover + .main {
    margin-left: 200px;
}

/*Center Brand*/
nav.sidebar.navbar.sidebar>.container .navbar-brand, .navbar>.container-fluid .navbar-brand {
    margin-left: 0;
}

/*Center Brand*/
nav.sidebar .navbar-brand, nav.sidebar .navbar-header {
    text-align: center;
    width: 100%;
    margin-left: 0px;
}

/*Center Icons*/
nav.sidebar a {
    padding-right: 13px;
}

/*adds border top to first nav box */
nav.sidebar .navbar-nav > li:first-child {
    border-top: 1px #e5e5e5 solid;
}

/*adds border to bottom nav boxes*/
nav.sidebar .navbar-nav > li {
    border-bottom: 1px #e5e5e5 solid;
}

/* Colors/style dropdown box*/
nav.sidebar .navbar-nav .open .dropdown-menu {
    position: static;
    float: none;
    width: auto;
    margin-top: 0;
    background-color: transparent;
    border: 0;
    -webkit-box-shadow: none;
    box-shadow: none;
}

/*allows nav box to use 100% width*/
nav.sidebar .navbar-collapse, nav.sidebar .container-fluid {
    padding: 0;
}

/*colors dropdown box text */
.navbar-inverse .navbar-nav .open .dropdown-menu>li>a {
    color: #777;
}

/*gives sidebar width/height*/
nav.sidebar {
    width: 200px;
    height: 100%;
    margin-left: -160px;
    float: left;
    z-index: 8000;
    margin-bottom: 0;
}

/*give sidebar 100% width;*/
nav.sidebar li {
    width: 100%;
}

/* Move nav to full on mouse over*/
nav.sidebar:hover {
    margin-left: 0;
}
/*for hiden things when navbar hidden*/
.forAnimate {
    opacity: 0;
}
}

/* .....NavBar: Fully showing nav bar..... */

@media (min-width: 1330px) {

/*Allow main to be next to Nav*/
.main {
    width: calc(100% - 200px); /*keeps 100% minus nav size*/
    margin-left: 200px;
}

/*Show all nav*/
nav.sidebar {
    margin-left: 0;
    float: left;
}
/*Show hidden items on nav*/
nav.sidebar .forAnimate {
    opacity: 1;
}


nav.sidebar .navbar-nav .open .dropdown-menu>li>a:hover, nav.sidebar .navbar-nav .open .dropdown-menu>li>a:focus {
    color: #CCC;
    background-color: transparent;
}

nav:hover .forAnimate {
    opacity: 1;
}

section {
    padding-left: 15px;
}