Animated Menu with Submenus
How do I make an animated menu with submenus?
Smooth animations for main nav and submenu items. What is a animated menu with submenus? How do you make a animated menu with submenus? This script and codes were developed by EY-Intuitive on 17 January 2023, Tuesday.
Animated Menu with Submenus - Script Codes HTML Codes
<!DOCTYPE html>
<html >
<head> <meta charset="UTF-8"> <title>Animated Menu with Submenus</title> <script src="https://s.codepen.io/assets/libs/modernizr.js" type="text/javascript"></script> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="theme-color" content="#CDDC39"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css"> <style> /* NOTE: The styles were added inline because Prefixfree needs access to your styles and they must be inlined if they are on local disk! */ * { -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body { font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-weight: 300; font-size: 16px; line-height: 20px; background: #f2f2f2; color: #303030;
}
.ic-header { position: fixed; top: 0; left: 0; right: 0; z-index: 10; width: 100%; background: #7190d6; padding: 15px 0; text-align: center;
}
.ic-header-title { font-size: 18px; line-height: 20px; color: white;
}
.ic-main { padding-top: 60px;
}
.ic-article { width: 80%; padding: 15px; margin: 0 auto 20px; background: white;
}
.ic-heading-default { font-size: 22px; line-height: 24px; margin-bottom: 10px;
}
.ic-nav { transition: all 0.3s cubic-bezier(0.86, 0, 0.07, 1); width: 200px; height: 100%; position: fixed; top: 0; transform: translateX(-200px) translateZ(0); background: #3d3d3d;
}
.active .ic-nav { transform: translateX(0) translateZ(0);
}
.ic-nav-list { margin-top: 60px; text-align: left;
}
.ic-nav-list .ic-nav-list-item { transition: all 0.2s cubic-bezier(0.86, 0, 0.07, 1); border-bottom: 2px solid rgba(0, 0, 0, 0.2); max-height: 50px; overflow: hidden;
}
.ic-nav-list .ic-nav-list-item.ic-active { max-height: 500px;
}
.ic-nav-list .ic-nav-list-item.ic-active .ic-nav-list-item-link.ic-parent-item:after { content: "-";
}
.ic-nav-list .ic-nav-list-item .ic-nav-list-item-link { display: block; padding: 15px; color: white; text-decoration: none;
}
.ic-nav-list .ic-nav-list-item .ic-nav-list-item-link.ic-parent-item { position: relative;
}
.ic-nav-list .ic-nav-list-item .ic-nav-list-item-link.ic-parent-item:after { position: absolute; content: "+"; right: 15px; width: 20px; text-align: center;
}
.ic-nav-list .ic-nav-list-item .ic-nav-list-item-link:visited { color: white;
}
.ic-nav-sublist { padding-left: 15px; background: #333333;
}
.ic-nav-sublist .ic-nav-sublist-item { border-bottom: 2px solid rgba(0, 0, 0, 0.2);
}
.ic-nav-sublist .ic-nav-sublist-item:last-child { border-bottom: none;
}
.ic-nav-sublist .ic-nav-sublist-item .ic-nav-sublist-item-link { display: block; padding: 15px; color: white; text-decoration: none;
}
.ic-nav-sublist .ic-nav-sublist-item .ic-nav-sublist-item-link:visited { color: white;
}
.menu-button-target { background: transparent; border: none; outline: none; cursor: pointer; position: absolute; z-index: 30; left: 10px; height: 30px; top: 50%; margin-top: -15px; webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.menu-button-target.active .menu-button { transition: background .1s ease; background-color: transparent;
}
.menu-button-target.active .menu-button:before,
.menu-button-target.active .menu-button:after { transition: top .2s ease, transform .2s .1s ease;
}
.menu-button-target.active .menu-button:before { top: 0; transform: rotate(45deg);
}
.menu-button-target.active .menu-button:after { top: 0; transform: rotate(-45deg);
}
.menu-button { position: relative; top: 50%; left: 0; display: block; width: 30px; height: 3px; margin-top: 0; background-color: white; border-radius: 10px; transition: background .2s .1s;
}
.menu-button:before,
.menu-button:after { content: ""; display: block; position: absolute; width: 100%; height: 100%; left: 0; background-color: white; transition: top .2s .1s ease, transform .2s ease; border-radius: 10px; transform-origin: 50% 50%;
}
.menu-button:before { top: -7px; transform: rotate(0deg);
}
.menu-button:after { top: 7px; transform: rotate(0deg);
} </style> <script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
</head>
<body> <header class="ic-header"> <button class="menu-button-target" data-ic-class="button-trigger"> <span class="menu-button"></span> </button> <nav class="ic-nav"> <ul class="ic-nav-list"> <li class="ic-nav-list-item"> <a href="" class="ic-nav-list-item-link ic-parent-item">List Item One</a> <ul class="ic-nav-sublist"> <li class="ic-nav-sublist-item"> <a href="" class="ic-nav-sublist-item-link">Sublist Item One</a> </li> <li class="ic-nav-sublist-item"> <a href="" class="ic-nav-sublist-item-link">Sublist Item One</a> </li> </ul> </li> <li class="ic-nav-list-item"> <a href="" class="ic-nav-list-item-link">List Item Two</a> </li> <li class="ic-nav-list-item"> <a href="" class="ic-nav-list-item-link ic-parent-item">List Item Three</a> <ul class="ic-nav-sublist"> <li class="ic-nav-sublist-item"> <a href="" class="ic-nav-sublist-item-link">Sublist Item One</a> </li> <li class="ic-nav-sublist-item"> <a href="" class="ic-nav-sublist-item-link">Sublist Item One</a> </li> </ul> </li> <li class="ic-nav-list-item"> <a href="" class="ic-nav-list-item-link">List Item Four</a> </li> </ul> </nav> <h1 class="ic-header-title">Intuitive Company</h1>
</header>
<div class="ic-main"> <article class="ic-article"> <h2 class="ic-heading-default">Article Title</h2> <p class="ic-body-copy">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sed omnis deleniti aperiam saepe error laborum quasi ipsa voluptatibus sunt recusandae illum libero placeat cum, sit debitis veritatis! Aliquid, cumque, eveniet.</p> </article> <article class="ic-article"> <h1 class="ic-heading-default">Article Title</h1> <p class="ic-body-copy">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sed omnis deleniti aperiam saepe error laborum quasi ipsa voluptatibus sunt recusandae illum libero placeat cum, sit debitis veritatis! Aliquid, cumque, eveniet.</p> </article> <article class="ic-article"> <h1 class="ic-heading-default">Article Title</h1> <p class="ic-body-copy">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sed omnis deleniti aperiam saepe error laborum quasi ipsa voluptatibus sunt recusandae illum libero placeat cum, sit debitis veritatis! Aliquid, cumque, eveniet.</p> </article> <article class="ic-article"> <h1 class="ic-heading-default">Article Title</h1> <p class="ic-body-copy">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sed omnis deleniti aperiam saepe error laborum quasi ipsa voluptatibus sunt recusandae illum libero placeat cum, sit debitis veritatis! Aliquid, cumque, eveniet.</p> </article>
</div> <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script> <script src="js/index.js"></script>
</body>
</html>
Animated Menu with Submenus - Script Codes CSS Codes
* { -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body { font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-weight: 300; font-size: 16px; line-height: 20px; background: #f2f2f2; color: #303030;
}
.ic-header { position: fixed; top: 0; left: 0; right: 0; z-index: 10; width: 100%; background: #7190d6; padding: 15px 0; text-align: center;
}
.ic-header-title { font-size: 18px; line-height: 20px; color: white;
}
.ic-main { padding-top: 60px;
}
.ic-article { width: 80%; padding: 15px; margin: 0 auto 20px; background: white;
}
.ic-heading-default { font-size: 22px; line-height: 24px; margin-bottom: 10px;
}
.ic-nav { transition: all 0.3s cubic-bezier(0.86, 0, 0.07, 1); width: 200px; height: 100%; position: fixed; top: 0; transform: translateX(-200px) translateZ(0); background: #3d3d3d;
}
.active .ic-nav { transform: translateX(0) translateZ(0);
}
.ic-nav-list { margin-top: 60px; text-align: left;
}
.ic-nav-list .ic-nav-list-item { transition: all 0.2s cubic-bezier(0.86, 0, 0.07, 1); border-bottom: 2px solid rgba(0, 0, 0, 0.2); max-height: 50px; overflow: hidden;
}
.ic-nav-list .ic-nav-list-item.ic-active { max-height: 500px;
}
.ic-nav-list .ic-nav-list-item.ic-active .ic-nav-list-item-link.ic-parent-item:after { content: "-";
}
.ic-nav-list .ic-nav-list-item .ic-nav-list-item-link { display: block; padding: 15px; color: white; text-decoration: none;
}
.ic-nav-list .ic-nav-list-item .ic-nav-list-item-link.ic-parent-item { position: relative;
}
.ic-nav-list .ic-nav-list-item .ic-nav-list-item-link.ic-parent-item:after { position: absolute; content: "+"; right: 15px; width: 20px; text-align: center;
}
.ic-nav-list .ic-nav-list-item .ic-nav-list-item-link:visited { color: white;
}
.ic-nav-sublist { padding-left: 15px; background: #333333;
}
.ic-nav-sublist .ic-nav-sublist-item { border-bottom: 2px solid rgba(0, 0, 0, 0.2);
}
.ic-nav-sublist .ic-nav-sublist-item:last-child { border-bottom: none;
}
.ic-nav-sublist .ic-nav-sublist-item .ic-nav-sublist-item-link { display: block; padding: 15px; color: white; text-decoration: none;
}
.ic-nav-sublist .ic-nav-sublist-item .ic-nav-sublist-item-link:visited { color: white;
}
.menu-button-target { background: transparent; border: none; outline: none; cursor: pointer; position: absolute; z-index: 30; left: 10px; height: 30px; top: 50%; margin-top: -15px; webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.menu-button-target.active .menu-button { transition: background .1s ease; background-color: transparent;
}
.menu-button-target.active .menu-button:before,
.menu-button-target.active .menu-button:after { transition: top .2s ease, transform .2s .1s ease;
}
.menu-button-target.active .menu-button:before { top: 0; transform: rotate(45deg);
}
.menu-button-target.active .menu-button:after { top: 0; transform: rotate(-45deg);
}
.menu-button { position: relative; top: 50%; left: 0; display: block; width: 30px; height: 3px; margin-top: 0; background-color: white; border-radius: 10px; transition: background .2s .1s;
}
.menu-button:before,
.menu-button:after { content: ""; display: block; position: absolute; width: 100%; height: 100%; left: 0; background-color: white; transition: top .2s .1s ease, transform .2s ease; border-radius: 10px; transform-origin: 50% 50%;
}
.menu-button:before { top: -7px; transform: rotate(0deg);
}
.menu-button:after { top: 7px; transform: rotate(0deg);
}
Animated Menu with Submenus - Script Codes JS Codes
var $menuTrigger = $('[data-ic-class="button-trigger"]'), $menuOverlay = $('[data-ic-class="overlay"]'), $menuItem = $('.menu-item'), activeClass = 'active', $nav = $('.ic-nav'), navOpen = false, $parentItem = $('.ic-parent-item');
var isTouch = false;
if($('html').hasClass('touch')){ isTouch = true;
}
function menuFunction(){ $menuTrigger.toggleClass(activeClass); if(!navOpen){ navOpen = true; $('body').addClass('active'); } else { navOpen = false; $('body').removeClass('active'); }
}
function toggleSubmenu(){ $(this).closest('.ic-nav-list-item').toggleClass('ic-active');
}
if(isTouch) { $menuTrigger.on('touchstart', function(){ menuFunction(); }); $parentItem.on('touchstart', function(){ $(this).closest('.ic-nav-list-item').toggleClass('ic-active'); });
}
if(!isTouch) { $menuTrigger.on('click', function(){ menuFunction(); }); $parentItem.on('click', function(){ $(this).closest('.ic-nav-list-item').toggleClass('ic-active'); });
}
$('a').click(function(e){ e.preventDefault();
});
Developer | EY-Intuitive |
Username | ey_intuitive |
Uploaded | January 17, 2023 |
Rating | 3 |
Size | 5,647 Kb |
Views | 18,216 |
Find the perfect freelance services for your business! Fiverr's mission is to change how the world works together. Fiverr connects businesses with freelancers offering digital services in 500+ categories. Find Developer!
Name | Size |
Pure CSS3 Flyout Navigation | 3,500 Kb |
Hidden Push Nav with Flyouts | 3,948 Kb |
Awesome Search Button with Input Animation | 3,633 Kb |
Xbox One Achievement Unlocked Alert | 4,060 Kb |
Reading Interaction | 2,598 Kb |
Button Text Color Accessibility Mixin Test | 4,555 Kb |
Awesome Full Page Menu Nav | 4,194 Kb |
Handlebars Templates - Example 2 | 1,714 Kb |
Step Indicator | 3,692 Kb |
Draggable Timeline Demo | 4,548 Kb |
Jasper is the AI Content Generator that helps you and your team break through creative blocks to create amazing, original content 10X faster. Discover all the ways the Jasper AI Content Platform can help streamline your creative workflows. Start For Free!
Name | Username | Size |
Sticky div | Kaslab | 2,225 Kb |
Tree growth tests | Orchard | 3,818 Kb |
Custom checkbox example | Capelo | 3,495 Kb |
Css3 slide | Nakome | 3,190 Kb |
Spinners using Font Icons | Keyamoon | 3,007 Kb |
Flex Chart | James_zedd | 4,111 Kb |
Tab panels | Accessibility | 0 Kb |
3D-box | Parthviroja | 2,346 Kb |
A bit of elegance | Hackthevoid | 9,095 Kb |
Alter bg opacity on hover... | Chrisboon27 | 2,054 Kb |
Surf anonymously, prevent hackers from acquiring your IP address, send anonymous email, and encrypt your Internet connection. High speed, ultra secure, and easy to use. Instant setup. Hide Your IP Now!