Slide out mobile menu
by Himanshu Joshi
HTML
<div id="menu">
<ul>
<li class="menuItem"><a href="#">Menu Item 1</a></li>
<li class="menuItem">
<a href="#">Menu Item 2</a>
<ul class="submenu">
<li class="menuItem"><a href="#">Menu Item 6</a></li>
<li class="menuItem"><a href="#">Menu Item 7</a></li>
<li class="menuItem"><a href="#">Menu Item 8</a></li>
<li class="menuItem"><a href="#">Menu Item 9</a></li>
<li class="menuItem"><a href="#">Menu Item 10</a></li>
<li class="menuItem"><a href="#">Menu Item 11</a></li>
<li class="menuItem"><a href="#">Menu Item 12</a></li>
</ul>
</li>
<li class="menuItem"><a href="#">Menu Item 3</a></li>
<li class="menuItem"><a href="#">Menu Item 4</a></li>
<li class="menuItem"><a href="#">Menu Item 5</a></li>
</ul>
</div>
<div id="right">
<div id="menubar">
<div id="button">
Menu
</div>
</div>
<p>dummy content here</p>
</div>
CSS
* {
padding: 0px;
margin: 0px;
}
#menubar {
width:100%;
background-color:#444;
color: #fff;
padding: 10px;
}
#button {
cursor:pointer;
}
#menu, #right {
display:inline;
}
#menu li a {
padding: 10px;
display: block;
color: white;
text-decoration: none;
}
#menu > li > a:hover{
color: #FFF;
background: #4A6125;
}
.menuItem:hover >ul{
display:block;
}
#right {
width:100%;
background-color: #fff;
z-index: 5;
position: fixed;
left: 0px;
height: 100%;
-webkit-box-shadow: -5px 0px 4px 0px rgba(0, 0, 0, 0.2);
moz-box-shadow: -5px 0px 4px 0px rgba(0, 0, 0, 0.2);
o-box-shadow: -5px 0px 4px 0px rgba(0, 0, 0, 0.2);
box-shadow: -5px 0px 4px 0px rgba(0, 0, 0, 0.2);
}
#right p {
padding: 10px;
}
.submenu {
display: none;
}
#menu {
float:left;
width: 350px;
height: 100%;
}
#menu li {
background-color:#444;
border-bottom: 1px solid #888;
}
JavaScript
$('#button').toggle(
function() {
$('#right').animate({ top: 250 }, 'slow', function() {
$('#button').html('Close');
});
},
function() {
$('#right').animate({ top: 0 }, 'slow', function() {
$('#button').html('Menu');
});
}
);