Mobile-friendly Navigation Drawer For Bootstrap 4
File Size: | 4.87 KB |
---|---|
Views Total: | 6428 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |

A side drawer component for Bootstrap 4 to create a mobile-friendly off-canvas navigation drawer that can be toggled by a hamburger button.
Inspired by Android (Material Design) navigation drawer concept. Works as an extension to the Bootstrap 4 JavaScript. jQuery is OPTIONAL.
How to use it:
1. The required HTML structure for the navigation drawer.
<div id="side-drawer" class="position-fixed"> <div class="h-100 bg-white"> <!-- Side Drawer Title --> <div class="p-4 bg-dark"> <a href="#"> <h1 class="text-white">Home</h1> </a> </div> <!-- Side Drawer Links --> <ul id="links" class="list-group" onclick="closeSideDrawer()"> <a id="link-structure" href="#" class="list-group-item list-group-item-action border-0 rounded-0 active"> Works </a> <a id="link-css" href="#" class="list-group-item list-group-item-action border-0 rounded-0"> About </a> <a id="link-javascript" href="#" class="list-group-item list-group-item-action border-0 rounded-0"> Contact </a> <a id="link-customization" href="#customization" class="list-group-item list-group-item-action border-0 rounded-0"> Blog </a> </ul> </div> </div> <div id="side-drawer-void" class="position-fixed d-none" onclick="closeSideDrawer()"></div>
2. Create a hamburger button to toggle the navigation drawer.
<button class="navbar-toggler" type="button" onclick="openSideDrawer()"> <span class="navbar-toggler-icon"></span> </button>
3. The necessary CSS styles for the navigation drawer.
#side-drawer { height: 100vh; width: 336px; /*Ideal width for sidebar accdg to https://forums.envato.com/t/standard-sidebar-width/75633*/ top: 0; left: -336px; z-index: 1032; /*z-index of standard bootstrap navbar is 1030 + 1 offset due to side-drawer-void*/ transition: left 0.25s ease; } #side-drawer-void { height: 100%; width: 100%; top: 0; z-index: 1031; /*z-index of standard bootstrap navbar is 1030*/ background: rgba(0,0,0,.6); }
4. The main JavaScript to enable the navigation drawer. Copy the following snippets and insert them after Bootstrap's JavaScript. Done.
<link rel="stylesheet" href="/path/to/cdn/bootstrap.min.css" /> <script src="/path/to/cdn/jquery.slim.min.js"></script> <script src="/path/to/cdn/bootstrap.min.js"></script>
function openSideDrawer() { document.getElementById("side-drawer").style.left = "0"; document.getElementById("side-drawer-void").classList.add("d-block"); document.getElementById("side-drawer-void").classList.remove("d-none"); } function closeSideDrawer() { document.getElementById("side-drawer").style.left = "-336px"; document.getElementById("side-drawer-void").classList.add("d-none"); document.getElementById("side-drawer-void").classList.remove("d-block"); }
This awesome jQuery plugin is developed by danielflachica. For more Advanced Usages, please check the demo page or visit the official website.