Persistent expanding navbar for use on a Skrollr site
Forked from Lewi Hussey's Pen Lil' nav, with persistent functionality adapted from Sean McCaffery's Pen Persistent Nav.
| <nav> | |
| <div class="toggleNav"> | |
| <div id="toggle" > | |
| <div class="one"></div> | |
| <div class="two"></div> | |
| <div class="three"></div> | |
| </div> | |
| </div> | |
| <div id="subnav"> | |
| <ul> | |
| <li><a href="cookie">cookie</a></li> | |
| <li><a href="section-about">About Stuff</a></li> | |
| <li><a href="3">3</a></li> | |
| <li><a href="4">4</a></li> | |
| </ul> | |
| </div> | |
| </nav> | |
| <div id="content"> | |
| <div class="item cookie">cookie</div> | |
| <div class="item section-about">About Stuff</div> | |
| <div class="item 3">3</div> | |
| <div class="item 4">4</div> | |
| </div> |
| $(document).ready(function () { | |
| $(".toggleNav").click(function () { | |
| $("#subnav").toggleClass("active"); | |
| $(".toggleNavButton").toggleClass("active"); | |
| }); | |
| $("#toggle").click(function() { | |
| $(this).toggleClass("on"); | |
| $(".menu").slideToggle(); | |
| }); | |
| $('nav a').on('click', function () { | |
| var link_name = $(this).attr("href"); | |
| $('html, body').animate({ | |
| scrollTop: $('.'+link_name).offset().top - 150 | |
| }, 800); | |
| return false; | |
| }); | |
| var navPos = $('nav').offset(); | |
| $(window).on('scroll', function () { | |
| if($(window).scrollTop() > parseInt(navPos.top) - 60){ | |
| $('nav').css({ | |
| 'position' : 'fixed', | |
| 'right' : '0%', | |
| 'top' : '0%' | |
| }); | |
| } else { | |
| $('nav').css({ | |
| 'position' : 'absolute', | |
| 'right' : '0%' | |
| }); | |
| } | |
| }); | |
| }); |
| * { | |
| -webkit-transition-timing-function: ease-out; | |
| /* Safari and Chrome */ | |
| transition-timing-function: ease-out; | |
| -moz-box-sizing: border-box; | |
| box-sizing: border-box; | |
| text-decoration: none; | |
| list-style: none; | |
| padding: 0; | |
| margin: 0; | |
| } | |
| body { | |
| font-family: "Segoe UI", Frutiger, "Frutiger Linotype", "Dejavu Sans", "Helvetica Neue", Arial, sans-serif; | |
| color: #F2F2F2; | |
| background-color: #41558C; | |
| } | |
| .toggleNav { | |
| background-color: #777; | |
| width: 100%; | |
| height: 50px; | |
| text-align: center; | |
| cursor: pointer; | |
| color: white; | |
| padding: 5px; | |
| } | |
| nav { | |
| width: 100%; | |
| min-height: 50px; | |
| position: relative; | |
| top: 0; | |
| } | |
| #toggle { | |
| width: 28px; | |
| height: 30px; | |
| margin: 10px auto; | |
| } | |
| #toggle div { | |
| width: 100%; | |
| height: 5px; | |
| background: white; | |
| margin: 4px auto; | |
| -webkit-transition: all 0.3s; | |
| transition: all 0.3s; | |
| -webkit-backface-visibility: hidden; | |
| backface-visibility: hidden; | |
| } | |
| #toggle.on .one { | |
| -webkit-transform: rotate(45deg) translate(5px, 5px); | |
| -ms-transform: rotate(45deg) translate(5px, 5px); | |
| transform: rotate(45deg) translate(5px, 5px); | |
| } | |
| #toggle.on .two { | |
| opacity: 0; | |
| } | |
| #toggle.on .three { | |
| -webkit-transform: rotate(-45deg) translate(7px, -8px); | |
| -ms-transform: rotate(-45deg) translate(7px, -8px); | |
| transform: rotate(-45deg) translate(7px, -8px); | |
| } | |
| #subnav { | |
| width: 100%; | |
| background-color: #666; | |
| -webkit-transition-duration: 0.2s; | |
| transition-duration: 0.2s; | |
| overflow: hidden; | |
| height: 0px; | |
| } | |
| #subnav.active { | |
| height: 50px; | |
| } | |
| #subnav ul { | |
| width: 615px; | |
| margin: 0 auto; | |
| display: block; | |
| } | |
| #subnav ul li { | |
| -webkit-transition-duration: 0.3s; | |
| transition-duration: 0.3s; | |
| display: inline-block; | |
| text-align: center; | |
| width: 150px; | |
| padding: 10px 0; | |
| height: 50px; | |
| vertical-align: middle; | |
| display: table-cell; | |
| } | |
| #subnav ul li a { | |
| color: white; | |
| } | |
| #subnav ul li:hover { | |
| background-color: #404040; | |
| } | |
| #content { | |
| width: 40%; | |
| margin: 60px auto; | |
| } | |
| .item { | |
| color: white; | |
| width: 70%; | |
| height: 500px; | |
| border: 2px solid white; | |
| margin: 160px auto; | |
| font-size: 20px; | |
| overflow: hidden; | |
| } | |
| #content { | |
| width: 40%; | |
| margin: 60px auto; | |
| } | |
| .item { | |
| color: white; | |
| width: 70%; | |
| height: 500px; | |
| border: 2px solid white; | |
| margin: 160px auto; | |
| font-size: 20px; | |
| overflow: hidden; | |
| } |