Side Nav for port
by Joshua Powell
HTML
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css">
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css">
<nav class="sideNav">
<ul class="nav">
<li class="active"><i class="fa fa-dashboard"></i>Home</li>
<li><i class="fa fa-gamepad"></i>About</li>
<li><i class="fa fa-picture-o"></i>Merch <span class="crt"><i class="fa fa-caret-square-o-right"></i></span>
<ul class="subMenu">
<li>Sub Menu1
<ul class="nestedMenu">
<li><a href="#">Link1</a>
</li>
<li><a href="#">Link2</a>
</li>
<li><a href="#">Link3</a>
</li>
</ul>
</li>
<li>Sub Menu2
<ul class="nestedMenu">
<li><a href="#">Link1</a>
</li>
<li><a href="#">Link2</a>
</li>
<li><a href="#">Link3</a>
</li>
</ul>
</li>
<li>Sub Menu3
<ul class="nestedMenu">
<li><a href="#">Link1</a>
</li>
<li><a href="#">Link2</a>
</li>
<li><a href="#">Link3</a>
</li>
</ul>
</li>
</ul>
</li>
<li><i class="fa fa-hdd-o"></i>Web <span class="crt"><i class="fa fa-caret-square-o-right"></i></span>
<ul class="subMenu">
<li>Sub Menu1
<ul class="nestedMenu">
<li><a href="#">Link1</a>
</li>
<li><a href="#">Link2</a>
...
CSS
html {
width: 100%;
height: 100%;
}
body {
padding: 0;
margin: 0;
position: fixed;
width: 100%;
height: 100%;
}
ul {
padding: 0;
margin: 0;
list-style-type: none;
}
li {
box-sizing: border-box;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
display: block;
width: 80%;
}
a {
color: #428bca;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
.sideNav {
width: 0;
position: relative;
float: left;
left: 0;
top: 0;
background: #f7f7f7;
border-right: 1px solid rgba(0, 0, 0, 0.2);
overflow: hidden;
-webkit-transition: all 0.4s ease-in-out;
z-index: 1000;
}
.sideNav.slide {
width: 20%;
}
.nav {
font-family:"century gothic";
font-size: 1.5em;
}
.nav > li {
display: inline-block;
position: relative;
width: 100%;
border-top: 1px solid rgba(0, 0, 0, 0.2);
border-left: 5px solid transparent;
background: #f7f7f7;
padding: 5px 5px;
cursor: pointer;
}
.crt {
position: absolute;
display: block;
right: 5px;
bottom: 5px;
font-weight: bold;
color: #c1c1c1;
-webkit-transform: rotate(90deg);
-webkit-transition: .6s ease;
-moz-transition: .6s ease;
-ms-transition: .6s ease;
-o-transition: .6s ease;
}
.crt.active {
-webkit-transform: rotate(-90deg);
color: brown;
}
.nav > li:hover {
border-left: 5px solid brown;
}
.nav > li.active {
color: brown;
}
.nav > li:nth-child(6) {
border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
.nav li > ul {
display: none;
padding-left: 15px;
}
.subMenu {
font-size: 0.8em !important;
line-height: 200%;
color: #2b2b2b !important;
}
.subMenu > li {
border-left: 1px dotted rgba(0, 0, 0, 0.6);
border-bottom: 1px dotted rgba(0, 0, 0, 0.6);
padding-left: 10px;
}
.subMenu > li:hover, .subMenu > li.active {
color: brown;
border-left: 1px dotted brown;
border-bottom: 1px dotted...
JavaScript
function sideNav() {
var wH = $(window).height(),
wW = $(window).width(),
nW = wW - 200,
nav = $('.nav > li'),
sM = '.subMenu',
subLi = $('.subMenu > li'),
nested = $('.nestedMenu');
$('.sideNav').css({
height: wH
});
$('.actNav').on('click', function(event) {
$('.sideNav').toggleClass('slide');
event.stopPropagation();
});
// 1st teir .nav function
nav.on('click', function (event) {
$('.active').removeClass('active');
$(sM).slideUp();
$(this).addClass('active').find(sM).stop(true).slideToggle();
$(this).find('.crt').addClass('active');
nested.slideUp();
subLi.removeClass('active');
});
// 2nd teir .subMenu function
subLi.on('click', function(event) {
event.stopPropagation();
$('.subMenu > li').removeClass('active');
nested.slideUp();
$(this).addClass('active').find('.nestedMenu').stop(true).slideToggle();
});
// 3rd teir .nestedNav function
$('.nestedMenu > a').on('click', function() {
});
}
sideNav();