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");
    });
  });