Off-canvas One Page Scroll Navigation In jQuery
File Size: | 3.11 KB |
---|---|
Views Total: | 2113 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |
A fancy hamburger button to toggle an off-canvas menu that enables the visitor to smoothly scroll through fullscreen page sections by clicking the anchor links.
How to use it:
1. Create content sections for the one page scroll web app.
<div class="content" id="main"> <h2>Page Section 1</h2> </div> <div class="content" id="news"> <h2>Page Section 2</h2> </div> <div class="content" id="feedback"> <h2>Page Section 3</h2> </div> <div class="content" id="maps"> <h2>Page Section 4</h2> </div> <div class="content" id="contacts"> <h2>Page Section 5</h2> </div>
2. Make the sections fullscreen.
.content { width: 100%; height: 100vh; display: flex; justify-content: center; align-items: center; }
3. Create the off-canvas navigation. Note that the anchor links must point to their corresponding sections as follows:
<div class="burger"> <span></span> <span></span> <span></span> </div> <div class="menu"> <span class="btn btn-close">×</span> <ul> <li><a href="#main">Page 1</a></li> <li><a href="#news">Page 2</a></li> <li><a href="#feedback">Page 3</a></li> <li><a href="#maps">Page 4</a></li> <li><a href="#contacts">Page 5</a></li> </ul> </div>
4. The necessary CSS styles for the off-canvas navigation.
* { transition: all 0.2s; } .burger { width: 50px; height: 50px; border-radius: 100%; background: #FFFFFF; position: fixed; top: 20px; left: 30px; display: flex; flex-direction: column; justify-content: center; align-items: center; z-index: 98; } .burger span { height: 2px; width: 20px; background: black; margin: 2px; } .burger:hover { cursor: pointer; } .burger:hover span:first-child { width: 10px; transform: rotate(33deg) translate(6px, 0px); } .burger:hover span:last-child { width: 10px; transform: rotate(-33deg) translate(6px, 0px); } .menu { width: 20%; height: 100vh; background: #000000; display: flex; justify-content: center; align-items: center; z-index: 99; position: fixed; top: 0; left: 0; transform: translateX(-100%); transition: all 0.4s; } .menu_active { transform: translateX(0%); transition: all 0.4s; } .menu .btn-close { position: absolute; top: 20px; right: 20px; text-align: center; font-size: 25px; line-height: 20px; height: 25px; width: 25px; color: purple; padding: 0; border: 0; } .menu .btn-close:hover { color: purple; transform: rotate(180deg); } .menu ul { list-style-type: none; } .menu ul li { margin: 10px; font-size: 25px; } .menu ul li a { color: #ffffff; text-decoration: none; } .menu ul li a:hover { color: purple; }
5. Load the needed jQuery JavaScript library at the end of the document.
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha384-tsQFqpEReu7ZLhBV2VZlAu7zcOV+rXbYlF2cqB8txI/8aZajjp4Bqd+V6D5IgvKT" crossorigin="anonymous"></script>
6. The jQuery script to activate the off-canvas navigation.
$(document).ready(function() { var menuLink = $('.burger'); var menu = $('.menu'); var close = $('.btn-close'); var navLink = $('ul li a'); var content = $('.content'); menuLink.click(function() { menu.toggleClass('menu_active'); }); close.click(function() { menu.toggleClass('menu_active'); }); navLink.on('click', function(event) { event.preventDefault(); var target = $(this).attr('href'); var top = $(target).offset().top; $('html, body').animate({scrollTop: top}, 500); menu.toggleClass('menu_active'); }); content.click(function() { menu.toggleClass('menu_active'); }); });
This awesome jQuery plugin is developed by wp-kurila. For more Advanced Usages, please check the demo page or visit the official website.