Mobile-first Offcavas Navigation With jQuery
| File Size: | 2.85 KB |
|---|---|
| Views Total: | 2097 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
A jQuery based mobile app navigation pattern that displays a sticky bottom navigation at the bottom of the web app and shows/hides an off-canvas sidebar navigation when toggled.
How to use it:
1. Import the Font Awesome Ionic Font for the navigation icons (OPTIONAL).
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
2. Create the off-canvas sidebar menu.
<nav id="slide-menu">
<div class="icon-btn slide-close"><i class="fa fa-close"></i></div>
<div class="menu">
<!-- your menu goes here -->
</div>
</nav>
3. Insert the menu trigger element to the bottom navigation.
<div class="mobile-sticky">
<div class="inner-sticky">
<ul>
<li>
<div class="icon-btn trigger">
<i class="fa fa-bars fa-2x"></i>
</div>
</li>
... More Navigation Items Here
</ul>
</div>
</div>
4. The required CSS styles.
.mobile-sticky {
display: none;
position: fixed;
bottom: 0;
left: 0;
width: 100%;
z-index: 99999;
}
nav#slide-menu { display: none; }
@media screen and (max-width: 768px) {
nav#slide-menu {
background: #DD3333;
position: fixed;
top: 0;
left: -300px;
bottom: 0;
display: block;
float: left;
width: 100%;
max-width: 293px;
height: 100%;
overflow: scroll;
padding-bottom: 25%;
-moz-transition: all 300ms;
-webkit-transition: all 300ms;
transition: all 300ms;
z-index: 9999;
}
.icon-btn.slide-close {
position: absolute;
margin: 6px 20px 0 0;
top: 0;
right: 0;
cursor: pointer;
}
/*display mobile sticky on mobile */
.mobile-sticky { display: block; }
/* mobile sticky styles */
.inner-sticky {
float: left;
width: 100%;
background: #DD3333;
}
.mobile-sticky ul {
margin: 0;
padding: 0;
}
.inner-sticky li {
float: left;
width: 33.33%;
text-align: center;
background: #DD3333;
padding: 6px 0;
list-style-type: none;
}
.inner-sticky .fa, .inner-sticky a, nav#slide-menu a { color: #FFF; }
body.menu-active nav#slide-menu { left: 0px; }
.slide-close i.fa.fa-close {
font-size: 2em;
color: #fff;
right: 0;
border-radius: 50%;
padding: 6px;
}
.menu-mobile .menu {
margin-top: 9vh;
padding-left: 0px;
padding-right: 0px;
margin-left: 0px;
margin-right: 0px;
}
.menu-mobile .menu li {
list-style-type: none;
display: block;
font-size: 30px;
border: solid 1px #fff;
width: 90%;
margin: 10px auto;
text-align: center;
border-radius: 7px;
}
}
5. Import the latest version of jQuery JavaScript library into the page.
<script src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha384-tsQFqpEReu7ZLhBV2VZlAu7zcOV+rXbYlF2cqB8txI/8aZajjp4Bqd+V6D5IgvKT"
crossorigin="anonymous">
</script>
6. The main jQuery script to enable the off-canvas sidebar menu.
jQuery(document).ready(function ($) {
(function slideMenu() {
var trigger = '.trigger'; // the triger class
var showslide = 'menu-active'; // the active class that is added to the body
var body = 'body'; //body of element
var close = '.slide-close'; // the class that closes the slide
var slideout = 'slideout'; // the class to show the slide
var mainId = '#slide-menu' //main wrapper ID
//open the slide and add class to body to use with css
jQuery(trigger).click(function () {
jQuery(body).toggleClass(showslide);
jQuery(mainId).toggleClass(slideout);
});
//close the slide
jQuery(close).click(function () {
jQuery(body).removeClass(showslide);
jQuery(mainId).removeClass(slideout);
});
}).call(this);
}());
This awesome jQuery plugin is developed by gabrielmacedoo. For more Advanced Usages, please check the demo page or visit the official website.











