<nav>
<div class="toggle-wrap">
<span class="toggle-bar"></span>
</div>
<hgroup>
<h3>Menu toggle with Sidebar slide</h3>
<small>Toggle menu using CSS (animate the icon to close) with sidebar sliding from the left.</small>
</hgroup>
</nav>
<aside>
<a href="#">Haha</a>
<a href="#">Nice</a>
<a href="#">Menu</a>
</aside>
* {
margin: 0;
padding: 0;
}
html,body {
background: #303030;
color: #303030;
height: 100%;
width: 100%;
positon: absolute;
font: normal 1em "Arial";
}
nav {
padding: 10px;
position: relative;
background: #4DEB5A;
z-index: 1;
}
nav::after {
content: "";
display: block;
clear: both;
}
hgroup {
float:left;
margin: 2px 2px 2px 10px;
}
aside {
position: absolute;
width: 300px;
height: 100%;
background: #383838;
left: 0;
top: 0;
display: none;
}
aside::before {
content: "";
display: block;
height: 67px;
}
aside a {
display: block;
padding: 12px 18px;
text-decoration: none;
font-size: 20px;
color: #818181;
border-bottom: 1px solid #414141;
}
.toggle-wrap {
padding: 10px;
position: relative;
cursor: pointer;
float: left;
/*disable selection*/
touch-callout: none;
user-select: none;
user-select: none;
user-select: none;
user-select: none;
user-select: none;
}
.toggle-bar,
.toggle-bar::before,
.toggle-bar::after,
.toggle-wrap.active .toggle-bar,
.toggle-wrap.active .toggle-bar::before,
.toggle-wrap.active .toggle-bar::after {
transition: all .2s ease-in-out;
transition: all .2s ease-in-out;
transition: all .2s ease-in-out;
transition: all .2s ease-in-out;
}
.toggle-bar {
width: 38px;
margin: 10px 0;
position: relative;
border-top: 6px solid #303030;
display: block;
}
.toggle-bar::before,
.toggle-bar::after {
content: "";
display: block;
background: #303030;
height: 6px;
width: 38px;
position: absolute;
top: -16px;
transform: rotate(0deg);
transform: rotate(0deg);
transform: rotate(0deg);
transform-origin: 13%;
transform-origin: 13%;
transform-origin: 13%;
}
.toggle-bar::after {
top: 4px;
}
.toggle-wrap.active .toggle-bar {
border-top: 6px solid transparent;
}
.toggle-wrap.active .toggle-bar::before {
transform: rotate(45deg);
transform: rotate(45deg);
transform: rotate(45deg);
}
.toggle-wrap.active .toggle-bar::after {
transform: rotate(-45deg);
transform: rotate(-45deg);
transform: rotate(-45deg);
}
(function() {
$('.toggle-wrap').on('click', function() {
$(this).toggleClass('active');
$('aside').animate({width: 'toggle'}, 200);
});
})();
This Pen doesn't use any external CSS resources.