Simple Sidebar Navigation
Simple Sidebar Navigation
by Adi Jaya
HTML
<div class="main">
<div class="header-top">
<button class="button-nav">
<span class="line"></span>
<span class="line"></span>
<span class="line"></span>
</button>
<h1>Heading Title</h1>
</div>
<!-- navigation open -->
<div class="navigation" id="navigation-demo">
<nav>
<div class="navigation-button">
<button class="button-nav">Close</button>
</div>
<h3 class="navigation-heading">Heading Navigation</h3>
<ul class="navigation-list">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
</ul>
<h3 class="navigation-heading">Heading Navigation</h3>
<ul class="navigation-list">
<li><a href="#">Link 4</a></li>
<li><a href="#">Link 5</a></li>
<li><a href="#">Link 6</a></li>
</ul>
</nav>
</div>
<!-- navigation close -->
<article style="padding:15px">
<p>Lorem Ipsum ...</p>
<p>
<a href="https://codepen.io/onclick_indo/pen/byOagx" target="_blank">Codepen Demo</a>
</p>
</article>
</div>
CSS
html {
font-size: 15px;
}
body {
margin: 0;
font-family: Roboto, 'Helvetica Neue', Helvetica, sans-serif;
font-size: 1em;
}
.button-nav {
position: relative;
cursor: pointer;
background: transparent;
border: 1px solid silver;
padding: 0.5em;
display: inline-block;
zoom: 1;
border-radius: 4px;
}
.button-nav .line {
display: block;
background: #969696;
height: 3px;
width: 25px;
margin: 3px 0;
}
.header-top {
padding: 10px;
background: #fff;
border-bottom: 1px solid #dad5d5;
}
.header-top h1 {
margin: 0;
display: inline-block;
font-size: 1.5em;
vertical-align: text-bottom;
line-height: 1;
font-weight: 400;
}
.navigation-backdrop {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 1000;
background: rgba(212, 212, 212, 0.36);
}
.navigation {
position: fixed;
left: 0;
top: 0;
height: 100%;
background: #fff;
z-index: 1001;
min-width: 250px;
overflow: auto;
display: none;
box-shadow: -1px 2px 6px 1px #9e9e9e;
}
.navigation.open {
display: block;
}
.navigation-button {
padding: 10px;
text-align: right;
}
.navigation-heading {
margin: 0;
font-weight: 400;
color: #777777;
padding: 10px;
}
.navigation-list {
padding: 0;
list-style: none;
margin: 0;
}
.navigation-list a {
color: #159bfb;
text-decoration: none;
display: block;
padding: 10px;
}
JavaScript
$(document).on("click", ".button-nav", function () {
var $target = $("#navigation-demo");
var $hasClass = $target.hasClass("open");
if (!$hasClass) {
$target.addClass("open");
$("body").append("<div class='navigation-backdrop'></div>");
} else {
$target.removeClass("open");
$(".navigation-backdrop").remove();
}
});
$(document).on("click", ".navigation-backdrop", function () {
var $target = $("#navigation-demo");
var $hasClass = $target.hasClass("open");
if ($hasClass) {
$($target).removeClass("open");
$(this).remove();
}
});