Responsive Hamburger Dropdown Menu With jQuery And CSS3
File Size: | 9.45 KB |
---|---|
Views Total: | 4058 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

A responsive, mobile-compatible navigation system that transforms the regular horizontal header navigation into a dropdown menu triggered by a hamburger toggle button.
Written in JavaScript (jQuery) and CSS flexbox, transition, transform, media query properties.
How to use it:
1. Create a header navigation for your webpage.
<header> <section id="nav"> <div class="wrapper"> <nav class="site-nav"> <h1 class="logo">Site Logo</h1> <div class="menu-toggle"> <div class="hamburger"></div> </div> <ul class="open desktop"> <li><a href="#!" id="one">Home</a></li> <li><a href="#!">Latest News</a></li> <li><a href="#!">About us</a></li> <li><a href="#!">Download</a></li> <li><a href="#!">Contact us</a></li> </ul> </nav> </div> </section> </header>
2. The basic styles for the hamburger dropdown menu.
#nav { width: 100%; margin: 0 auto; background: #f04343; } .wrapper { width: 100%; max-width: 960px; margin: 0 auto; } nav { margin: 0; padding: 0; } nav ul { display: flex; flex-direction: column; list-style-type: none; padding: 0; margin: 0; display: none; } nav ul.opening { display: block; height: 30px; } nav li { border-bottom: 1px solid #f6f4e2; } nav li:last-child { border-bottom: none; } nav a { color: #EBEBD3; background: #333; display: block; padding: 1.5em 4em 1.5em 1em; text-transform: uppercase; text-decoration: none; } nav a:hover, nav a:focus { background: #111; }
3. Style the hamburger menu toggler.
.menu-toggle { position: absolute; padding: 0.8em; top: 1em; right: .5em; cursor: pointer; } .hamburger, .hamburger::before, .hamburger::after { content: ''; display: block; background: #EBEBD3; height: 3px; width: 2em; border-radius: 3px; -webkit-transition: all ease-in-out 350ms; transition: all ease-in-out 350ms; } .hamburger::before { -webkit-transform: translateY(-7px); transform: translateY(-7px); } .hamburger::after { -webkit-transform: translateY(4px); transform: translateY(4px); } .open .hamburger { -webkit-transform: rotate(45deg); transform: rotate(45deg); } .open .hamburger::before { display: none; } .open .hamburger::after { -webkit-transform: translateY(-1px) rotate(-90deg); transform: translateY(-1px) rotate(-90deg); }
4. Style the regular horizontal navigation in the media queries.
@media (min-width: 780px) { .menu-toggle { display: none; } nav ul { display: flex; flex-direction: row; justify-content: flex-end; } nav li { flex: 1 1 auto; border: none; } nav li a { padding: 1.5em 1.3em 1.5em 1.3em; margin: 0; border: none; background-color: #f04343; } nav a:hover,nav a:focus { background-color: rgba(255,255,255,.10); } nav { display: flex; flex-direction: row; justify-content: space-between; text-align: center; background-color: #f04343; } }
5. Insert the necessary jQuery JavaScript library into the document.
<script src="/path/to/jquery.slim.min.js"></script>
6. Make the hamburger button to toggle the dropdown menu when needed.
$.noConflict(); jQuery(document).ready(function($) { $('.menu-toggle').on('click', function() { $('ul').slideToggle(); $(this).toggleClass('open'); }); });
This awesome jQuery plugin is developed by stenlidrumer. For more Advanced Usages, please check the demo page or visit the official website.