Add Smooth Sliding Animation To Bootstrap 4 Dropdown Menu
File Size: | 3.16 KB |
---|---|
Views Total: | 21590 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

A jQuery and CSS extension for Bootstrap 4 framework that adds a smooth sliding animation to Bootstrap 4 dropdown menus using CSS3 transitions and transforms.
How to use it:
1. Add the CSS class collapse
to the dropdown menus.
<div class="collapse navbar-collapse" id="navbarCollapse"> <ul class="navbar-nav mr-auto"> <li class="nav-item active"> <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="dropdown01" data-toggle="collapse" aria-haspopup="true" aria-expanded="false" data-toggle="collapse" data-target="#dropdown-menu01">Dropdown 1</a> <div> <div id="dropdown-menu01" class="dropdown-menu collapse" aria-labelledby="dropdown01" data-parent="#collapseExample"> <a class="dropdown-item" href="#">Action</a> <a class="dropdown-item" href="#">Another action</a> <a class="dropdown-item" href="#">Something else here</a> </div> </div> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="dropdown02" data-toggle="collapse" aria-haspopup="true" aria-expanded="false" data-toggle="collapse" data-target="#dropdown-menu02">Dropdown 2</a> <div> <div id="dropdown-menu02" class="dropdown-menu collapse" aria-labelledby="dropdown02" data-parent="#collapseExample"> <a class="dropdown-item" href="#">Action</a> <a class="dropdown-item" href="#">Another action</a> <a class="dropdown-item" href="#">Something else here</a> </div> </div> </li> </ul> </div>
2. The necessary CSS/CSS3 rules for the smooth sliding animation.
.dropdown-menu.collapsing { display: block; } @media (max-width: 767.98px) { .dropdown-menu { padding: 0; margin-top: 0!important; border: 0!important; } .dropdown-menu:before { content: ""; display: block; padding-top: .5rem; } .dropdown-menu:after { content: ""; display: block; padding-bottom: .5rem; } } @media (min-width: 768px) { .dropdown>div { position: absolute; clip: rect(0.5rem, 9999px, 9999px, -9999px); } .dropdown-menu { height: auto!important; transition: transform .35s ease!important; } .dropdown-menu.collapse, .dropdown-menu.sliding { transform: translate(0, -100%); } .dropdown-menu.collapse:not(.show) { display: block; } .dropdown-menu.collapse.show { transform: translate(0, 0); } }
3. The JavaScript to hide the dropdown menu after a menu item is clicked. Just copy and place the JS snippets after jQuery & Bootstrap libraries. That's it.
$(".dropdown").on("hide.bs.collapse", function() { $(this).find(".dropdown-menu").first().addClass( "sliding" ) }); $(".dropdown").on("hidden.bs.collapse", function() { $(this).find(".dropdown-menu").first().removeClass( "sliding" ) }); $(document).click(function() { $(".dropdown-menu.collapse.show").collapse("hide"); });
Changelog:
2019-06-05
This awesome jQuery plugin is developed by tightcode. For more Advanced Usages, please check the demo page or visit the official website.