Stylish Responsive Slide Menu with jQuery and CSS3
| File Size: | 2.11 KB |
|---|---|
| Views Total: | 3957 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
A stylish responsive navigation menu that will be converted into a toggle menu with CSS3 animations in small screens.
How to use it:
1. Create the Html for a responsive menu.
<div id="header" class="l-header">
<div class="wrap">
<button class="btn menu-btn">Menu</button>
<nav class="menu">
<ul class="menu__list">
<li class="menu__item"> <a href="#" class="menu__link">Item A</a> </li>
<li class="menu__item"> <a href="#" class="menu__link">Item B</a> </li>
<li class="menu__item"> <a href="#" class="menu__link">Item C</a> </li>
</ul>
</nav>
</div>
</div>
2. The basic styles for the responsive menu.
button {
-webkit-font-smoothing: antialiased;
background-color: #09f;
border: none;
border-radius: 0.1875em;
color: white;
display: inline-block;
font-size: 1em;
font-weight: bold;
line-height: 1;
padding: .75em 1em;
text-decoration: none;
}
button:hover {
background-color: #007acc;
color: white;
}
.l-header {
height: 80px;
position: relative;
background: #212121;
}
.menu-btn {
display: none;
position: absolute;
right: 10px;
top: 20px;
}
@media (max-width: 768px) {
.menu-btn { display: block; }
}
.wrap {
margin-left: auto;
margin-right: auto;
max-width: 1000px;
}
3. The core styles for the responsive menu.
.menu { float: right; }
.menu__list {
overflow: hidden;
padding-left: 0;
margin: 0;
list-style: none;
}
.menu__item {
float: left;
text-align: center;
text-align: center;
}
.menu__link {
display: block;
color: #fff;
text-decoration: none;
line-height: 5em;
height: 5em;
padding: 0 1.5em;
word-wrap: no-wrap;
transition: all .3s ease;
}
.menu__link:hover,
.menu__link:focus {
background: #09f;
color: #fff;
}
@media (max-width: 768px) {
.menu { float: none; }
.menu__item {
display: block;
float: none;
-webkit-transform: translateX(-100%);
-moz-transform: translateX(-100%);
-ms-transform: translateX(-100%);
-o-transform: translateX(-100%);
transform: translateX(-100%);
transition: all .3s ease-out;
}
.menu__item--play {
display: block;
-webkit-transform: translateX(0);
-moz-transform: translateX(0);
-ms-transform: translateX(0);
-o-transform: translateX(0);
transform: translateX(0);
}
.menu__item + .menu__item { border-top: 1px solid #008ae6; }
.menu__link { background: #09f; }
.menu__link:hover { background: #007acc; }
}
4. Include the necessary jQuery library at the bottom of the document.
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
5. A little jQuery script to enable the responsive menu.
$('.menu-btn').on('click', function() {
var elem = $(this),
item = $('.menu__item'),
active = 'is-active',
play = 'menu__item--play';
if ( elem.hasClass(active) ) {
elem.removeClass(active);
$(item.get().reverse()).each(function(i) {
var row = $(this);
setTimeout(function() {
row.removeClass(play);
}, 50*i);
});
}
else {
elem.addClass(active);
item.each(function(i) {
var row = $(this);
setTimeout(function() {
row.addClass(play);
}, 50*i);
});
}
});
This awesome jQuery plugin is developed by sutterlity. For more Advanced Usages, please check the demo page or visit the official website.











