Stylish Menu BARS for website (Animating-Hamburger)
by Faisal Khan Janjua
HTML
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<main class="o-content">
<div class="o-container">
<div class="o-grid">
<div class="o-grid_item">
<button class="c-hamburger c-hamburger-rot">
<span>toggle menu</span>
</button>
</div>
<div class="o-grid_item">
<button class="c-hamburger c-hamburger-htx">
<span>toggle menu</span>
</button>
</div>
<div class="o-grid_item">
<button class="c-hamburger c-hamburger-htla">
<span>toggle menu</span>
</button>
</div>
<div class="o-grid_item">
<button class="c-hamburger c-hamburger-htra">
<span>toggle menu</span>
</button>
</div>
</div>
</div>
</main>
CSS
.o-grid{
text-align: center;
}
.o-grid_item{
display: inline-block;
margin: 50px 20px;
}
.c-hamburger {
display: block;
position: relative;
overflow: hidden;
margin: 0;
padding: 0;
width: 96px;
height: 96px;
font-size: 0;
text-indent: -9999px;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
box-shadow: none;
border-radius: none;
border: none;
cursor: pointer;
-webkit-transition: background 0.3s;
transition: background 0.3s;
}
.c-hamburger:focus {
outline: none;
}
.c-hamburger span {
display: block;
position: absolute;
top: 44px;
left: 18px;
right: 18px;
height: 8px;
background: white;
}
.c-hamburger span::before,
.c-hamburger span::after {
position: absolute;
display: block;
left: 0;
width: 100%;
height: 8px;
background-color: #fff;
content: "";
}
.c-hamburger span::before {
top: -20px;
}
.c-hamburger span::after {
bottom: -20px;
}
/**
* Style 1
*
* Rotating hamburger icon (rot), that simply rotates 90 degrees when activated.
* Nothing too fancy, simple transition.
*/
.c-hamburger-rot {
background-color: #28aadc;
}
.c-hamburger-rot span {
-webkit-transition: -webkit-transform 0.3s;
transition: transform 0.3s;
}
/* active state, i.e. menu open */
.c-hamburger-rot.is-active {
background-color: #166888;
}
.c-hamburger-rot.is-active span {
-webkit-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
}
/**
* Style 2
*
* Hamburger to "x" (htx). Takes on a hamburger shape, bars slide
* down to center and transform into an "x".
*/
.c-hamburger-htx {
background-color: #ff3264;
}
.c-hamburger-htx span {
-webkit-transition: background 0s 0.3s;
transition: background 0s 0.3s;
}
.c-hamburger-htx span::before,
.c-hamburger-htx span::after {
-webkit-transition-duration: 0.3s, 0.3s;
transition-duration: 0.3s, 0.3s;
-webkit-transition-delay: 0.3s, 0s;
...
JavaScript
$(document).ready(function(){
$(".c-hamburger").click(function(){
$(this).toggleClass("is-active");
});
});