Responsive Menu
by Faisal Khan Janjua
HTML
<div class="header">
<div class="toggleButton">
<span></span>
</div>
<ul class="menu">
<li>Home</li>
<li>About</li>
<li>Profile</li>
<li>Contact</li>
</ul>
</div>
SCSS
body {
margin: 0;
}
.menu {
padding: 0;
margin: 10px;
list-style: none;
& li {
display: inline-block;
padding: 8px 20px;
border: 1px solid #ddd;
}
}
.toggleButton {
width: 40px;
height: 40px;
position: relative;
border: 1px solid #ddd;
& span {
top:0;
bottom: 0;
margin: auto;
width: 100%;
height: 2px;
display: block;
background: #666;
position: absolute;
transition: all ease .2s;
&:before, &:after {
content: '';
width: 100%;
height: 2px;
display: block;
background: #F99;
margin-top: -10px;
position: absolute;
transition: all ease .2s;
}
&:after {
margin-top: 10px;
}
}
&.open {
& span {
background: rgba(0,0,0,0);
&:before {
margin: 0;
transform: rotate(-45deg);
}
&:after {
margin: 0;
transform: rotate(45deg);
}
}
}
}
@media screen and (max-width: 559px) {
.menu {
display: none;
& li {
display: block;
}
}
}
JavaScript
alert('ready');
$(document).on('click', '.toggleButton', function(){
$(this).toggleClass('open');
$('.menu').slideToggle();
});