Mobile-compatible Dropdown Menu With jQuery And Nested Lists
File Size: | 4.38 KB |
---|---|
Views Total: | 2186 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

A responsive, semantic, mobile-friendly dropdown navigation that automatically switches between a horizontal list of menu links and a hamburger toggle menu depending on the current screen size.
Built with JavaScript (jQuery), CSS/CSS3 and nested HTML unordered lists.
See also:
- Best Responsive Dropdown Menus
- Best Responsive Menu Plugins
- Best Accordion Menu Components
- Best Circle Menu Plugins
How to use it:
1. Insert your menu list together with a hamburger toggle icon into a nav element.
<nav> <div> Place Any Hamburger Icon Here </div> <ul> <li><a href="#">jQueryScript.Net</a></li> <li> <a href="#">JavaScript</a> <ul> <li><a href="#">Angular</a></li> <li><a href="#">React</a></li> <li><a href="#">Vue</a></li> </ul> </li> <li><a href="#">About</a></li> <li><a href="#">Contact</a></li> </ul> </nav>
2. The required CSS for the horizontal dropdown menu when running on the desktop.
nav div { padding: 0.6em; background: #e3e3e3; display: none; cursor: pointer; color: #292929; font-size: 24px; } ul { margin: 0px; padding: 0px; background: #e3e3e3; list-style-type: none; position: relative; } ul li { display: inline-block; } ul li a { padding: 15px; color: #292929; text-decoration: none; display: block; } ul li:hover { background: lightgrey; } ul ul { position: absolute; min-width: auto; background: lightgrey; display: none; } ul ul li { display: block; background: #e3e3e3; } ul li:hover ul { display: block; }
3. The required CSS for the hamburger toggle menu when running on the mobile (screen size < 769px).
@media (max-width: 768px) { nav div { display: block; } ul { display: none; position: static; background: #e3e3e3; } ul li { display: block; } ul ul { position: static; background: #e3e3e3; } }
4. Load the necessary jQuery JavaScript library at the end of the document.
<script src="/path/to/jquery.min.js"></script>
5. The JavaScript to enable the dropdown navigation.
$("nav div").click(function(){ $("ul").slideToggle(); $("ul ul").css("display", "none"); }); $('ul li').click(function () { $(this).siblings().find('ul').slideUp(); $(this).find('ul').slideToggle(); });
6. Re-init the dropdown navigation on window resize.
$(window).resize(function(){ if($(window).width() > 768){ $("ul").removeAttr('style'); } });
This awesome jQuery plugin is developed by murtazajafari. For more Advanced Usages, please check the demo page or visit the official website.