hamburger menu
by tomik23
HTML
<button class="hamburger">
<div class="hamburger-center"></div>
</button>
SCSS
.hamburger {
position: relative;
padding: 35px;
background-color: #00aeff;
border: 1px solid lighten(#000, 90%);
cursor: pointer;
&.is-open {
.hamburger-center {
background-color: transparent;
transition: background-color 0.25s ease-in;
}
&::before {
transform: translateY(0) rotate(45deg);
transition: transform 0.25s ease-in;
}
&::after {
transform: translateY(0) rotate(-45deg);
transition: transform 0.25s ease-in;
}
}
.hamburger-center {
position: absolute;
content: '';
width: 40px;
height: 3px;
background-color: #fff;
left: 50%;
top: 50%;
transform: translate(-50%);
transition: background-color 0.5s ease-in;
z-index: 9999;
}
&::before,
&::after {
position: absolute;
content: '';
width: 40px;
height: 3px;
left: 15px;
top: 50%;
margin: auto;
background-color: #fff;
z-index: 9999;
}
&::before {
transform: translateY(10px) rotate(0);
transition: transform 0.25s ease-in;
}
&::after {
transform: translateY(-10px) rotate(0);
transition: transform 0.25s ease-in;
}
}
JavaScript
const hamburger = document.querySelector('.hamburger');
hamburger.addEventListener('click', e => {
hamburger.classList.toggle('is-open');
});