I use the Bourbon Refill navigation menu and want to change it, so when the link is clicked in small mode, the menu slides. At the moment, the menu is omitted, but when you click a menu item, the menu remains down. Since I use scrolling on a page with a fixed top menu, this means that a lot of content is hidden behind the menu.
Here is the code on Codepen:
http://codepen.io/mikehdesign/pen/LVjbPv/
My existing code is below:
HTML
<header class="navigation" role="banner"> <div class="navigation-wrapper"> <a href="javascript:void(0)" class="logo"> <img src="https://raw.githubusercontent.com/thoughtbot/refills/master/source/images/placeholder_logo_1_dark.png" alt="Logo Image"> </a> <a href="javascript:void(0)" class="navigation-menu-button" id="js-mobile-menu">Menu</a> <nav role="navigation"> <ul id="js-navigation-menu" class="navigation-menu show"> <li class="nav-link"><a href="javascript:void(0)">About Us</a></li> <li class="nav-link"><a href="javascript:void(0)">Contact</a></li> <li class="nav-link"><a href="javascript:void(0)">Testimonials</a></li> <li class="nav-link"><a href="javascript:void(0)">Sign up</a></li> </ul> </nav>
SCSS
.navigation { $large-screen: em(860) !default; $large-screen: $large-screen; // Mobile view .navigation-menu-button { display: block; float: right; margin: 0; padding-top: 0.5em; @include media ($large-screen) { display: none; } } // Nav menu .navigation-wrapper { @include clearfix; position: relative; } .logo { float: left; img { max-height: 2em; padding-right: 1em; } } nav { float: none; @include media ($large-screen) { float: left; line-height: 1.5em; padding-top: 0.3em; } } ul.navigation-menu { clear: both; display: none; margin: 0 auto; overflow: visible; padding: 0; width: 100%; @include media ($large-screen) { display: block; margin: 0; padding: 0; } &.show { display: block; } } // Nav items ul li.nav-link { display: block; text-align: right; width: 100%; @include media ($large-screen) { background: transparent; display: inline; text-decoration: none; width: auto; } } li.nav-link a { display: inline-block; @include media ($large-screen) { padding-right: 1em; } } }
Js
$(document).ready(function() { var menuToggle = $('#js-mobile-menu').unbind(); $('#js-navigation-menu').removeClass("show"); menuToggle.on('click', function(e) { e.preventDefault(); $('#js-navigation-menu').slideToggle(function(){ if($('#js-navigation-menu').is(':hidden')) { $('#js-navigation-menu').removeAttr('style'); } }); }); });
Help with thanks
Mike
javascript jquery css bourbon neat
Mike harrison
source share