"Sidebar navigation with Scrollspy"
Bootstrap 3.1.0 Snippet by JPedroBorges

<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.0/js/bootstrap.min.js"></script> <script src="//code.jquery.com/jquery-1.11.1.min.js"></script> <!------ Include the above in your HEAD tag ----------> <div id="wrapper"> <!-- Sidebar --> <div id="sidebar-wrapper"> <nav id="spy"> <ul class="sidebar-nav nav"> <li class="sidebar-brand"> <a href="#home"><span class="fa fa-home solo">Home</span></a> </li> <li> <a href="#anch1" data-scroll> <span class="fa fa-anchor solo">Anchor 1</span> </a> </li> <li> <a href="#anch2" data-scroll> <span class="fa fa-anchor solo">Anchor 2</span> </a> </li> <li> <a href="#anch3" data-scroll> <span class="fa fa-anchor solo">Anchor 3</span> </a> </li> <li> <a href="#anch4" data-scroll> <span class="fa fa-anchor solo">Anchor 4</span> </a> </li> </ul> </nav> </div> <!-- Page content --> <div id="page-content-wrapper"> <div class="content-header"> <h1 id="home"> <a id="menu-toggle" href="#" class="glyphicon glyphicon-align-justify btn-menu toggle"> <i class="fa fa-bars"></i> </a> Sidebar Navigation Template </h1> </div> </div> </div>
#wrapper { padding-left: 250px; transition: all 0.4s ease 0s; } #sidebar-wrapper { margin-left: -250px; left: 250px; width: 250px; background: #000; position: fixed; height: 100%; overflow-y: auto; z-index: 1000; transition: all 0.4s ease 0s; } #wrapper.active { padding-left: 0; } #wrapper.active #sidebar-wrapper { left: 0; } #page-content-wrapper { width: 100%; } .sidebar-nav { position: absolute; top: 0; width: 250px; list-style: none; margin: 0; padding: 0; } .sidebar-nav li { line-height: 40px; text-indent: 20px; } .sidebar-nav li a { color: #999999; display: block; text-decoration: none; padding-left: 60px; } .sidebar-nav li a span:before { position: absolute; left: 0; color: #41484c; text-align: center; width: 20px; line-height: 18px; } .sidebar-nav li a:hover, .sidebar-nav li.active { color: #fff; background: rgba(255,255,255,0.2); text-decoration: none; } .sidebar-nav li a:active, .sidebar-nav li a:focus { text-decoration: none; } .sidebar-nav > .sidebar-brand { height: 65px; line-height: 60px; font-size: 18px; } .sidebar-nav > .sidebar-brand a { color: #999999; } .sidebar-nav > .sidebar-brand a:hover { color: #fff; background: none; } .content-header { height: 65px; line-height: 65px; } .content-header h1 { margin: 0; margin-left: 20px; line-height: 65px; display: inline-block; } #menu-toggle { text-decoration: none; } .btn-menu { color: #000; } .inset { padding: 20px; } @media (max-width:767px) { #wrapper { padding-left: 0; } #sidebar-wrapper { left: 0; } #wrapper.active { position: relative; left: 250px; } #wrapper.active #sidebar-wrapper { left: 250px; width: 250px; transition: all 0.4s ease 0s; } #menu-toggle { display: inline-block; } .inset { padding: 15px; } }
/*Menu-toggle*/ $("#menu-toggle").click(function(e) { e.preventDefault(); $("#wrapper").toggleClass("active"); }); /*Scroll Spy*/ $('body').scrollspy({ target: '#spy', offset:80}); /*Smooth link animation*/ $('a[href*=#]:not([href=#])').click(function() { if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') || location.hostname == this.hostname) { var target = $(this.hash); target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); if (target.length) { $('html,body').animate({ scrollTop: target.offset().top }, 1000); return false; } } });

Related: See More


Questions / Comments: