JSFiddle - React, Tailwind, and code Playground
by Ajsa Ferguson
HTML
<div class="mobile-nav">
<div class="menu-btn" id="menu-btn">
<div></div> <span></span>
<span></span>
<span></span>
</div>
<div class="responsive-menu">
<div class="header-menu">
<ul>
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
<li><a href="#">Link 5</a></li>
<li><a href="#">Link 6</a></li>
<li><a href="#">Link 7</a></li>
<li><a href="#">Link 8</a></li>
<li><a href="#">Link 9</a></li>
<li><a href="#">Link 10</a></li>
<li><a href="#">Link 11</a></li>
<li><a href="#">Link 12</a></li>
<li><a href="#">Link 13</a></li>
<li><a href="#">Link 14</a></li>
<li><a href="#">Link 15</a></li>
</ul>
</div>
</div>
</div>
CSS
.header-menu {
width: 100%;
}
.header-menu li {
background: url("images/arrow.png") no-repeat left center;
height: 40px;
margin: 0;
padding-left: 15px;
line-height: 40px;
-webkit-transition:background-position .3s ease-in;
-moz-transition:background-position .3s ease-in;
-o-transition:background-position .3s ease-in;
transition:background-position .3s ease-in;
}
.header-menu li:hover {
background: rgba(31, 73, 125, 0.8) url("images/arrow-hover.png") no-repeat left center;
}
.header-menu li a {
display: block;
margin: 0 5px;
font-size: 18px;
}
.header-menu .current-menu-item {
background: rgba(31, 73, 125, 0.8) url("images/arrow-hover.png") no-repeat right center;
}
.mobile-nav {
position: relative;
display: block;
width: 90%;
margin: 0 auto;
}
.mobile-nav .menu-btn {
position: fixed;
-webkit-backface-visibility: hidden;
top: 0;
left: 20px;
padding-right: 8px;
margin-top: 10px;
line-height: 1.2;
font-size: 18px;
font-weight: 200;
vertical-align: middle;
z-index: 999;
}
.menu-btn span {
display: block;
width: 30px;
height: 4px;
margin: 4px 0;
background: rgb(255, 255, 255);
-webkit-box-shadow: 2px 2px 0px 0px rgba(0, 0, 0, 1);
-moz-box-shadow: 2px 2px 0px 0px rgba(0, 0, 0, 1);
box-shadow: 2px 2px 0px 0px rgba(0, 0, 0, 1);
z-index: 999;
}
.responsive-menu {
display: none;
}
.expand {
display: block !important;
position: fixed;
-webkit-backface-visibility: hidden;
top: 50px;
left: 0;
background: rgba(31, 73, 125, 0.8);
width: 100%;
z-index: 999;
bottom: 0;
overflow: auto;
}
JavaScript
jQuery(function ($) {
$('.menu-btn').click(function () {
$('.responsive-menu').toggleClass('expand')
})
})