11/*eslint-env jquery*/
2- // log what was clicked (only for dev)
3- // $( document ).click( function( e ) {
4- // console.log( e.target );
5- // } );
62
73// Jquery & Velocity JS included in GULP
84$ ( document ) . ready ( function ( ) {
95
6+ toggleMobileNav ( ) ;
107 ShowHideNav ( ) ;
118 formCheck ( ) ;
129
@@ -17,18 +14,78 @@ $( document ).keyup( function( e ) {
1714 e . keyCode === 27 ? removeModal ( ) : null ;
1815} ) ;
1916
17+ $ ( window ) . resize ( function ( ) {
18+ $ ( ".header" ) . removeClass ( "hide-nav" ) ; // Ensure nav will be shown on resize
19+ $ ( ".header__links" ) . removeAttr ( "style" ) ; // If mobile nav was collapsed, make sure it's show on DESK
20+ $ ( ".header__overlay" ) . remove ( ) ;
21+ } ) ;
22+
23+ // Toggle Mobile Navigation
24+ function toggleMobileNav ( ) {
25+ $ ( ".header__toggle" ) . click ( function ( ) {
26+
27+ if ( $ ( ".header__links" ) . hasClass ( "js--open" ) ) {
28+ hideMobileNav ( ) ;
29+ }
30+ else {
31+ openMobileNav ( ) ;
32+ }
33+ } ) ;
34+
35+ $ ( ".header__overlay" ) . click ( function ( ) {
36+ hideMobileNav ( ) ;
37+ } ) ;
38+ }
39+
40+ function openMobileNav ( ) {
41+ $ ( ".header__links" ) . velocity ( "slideDown" , {
42+ duration : 300 ,
43+ easing : "ease-out" ,
44+ display : "block" ,
45+ visibility : "visible" ,
46+ begin : function ( ) {
47+ $ ( ".header__toggle" ) . addClass ( "--open" ) ;
48+ $ ( "body" ) . append ( "<div class='header__overlay'></div>" ) ;
49+ } ,
50+ progress : function ( ) {
51+ $ ( ".header__overlay" ) . addClass ( "--open" ) ;
52+ } ,
53+ complete : function ( ) {
54+ $ ( this ) . addClass ( "js--open" ) ;
55+ }
56+ } ) ;
57+ }
58+
59+ function hideMobileNav ( ) {
60+ $ ( ".header__overlay" ) . remove ( ) ;
61+ $ ( ".header__links" ) . velocity ( "slideUp" , {
62+ duration : 300 ,
63+ easing : "ease-out" ,
64+ display : "none" ,
65+ visibility : "hidden" ,
66+ begin : function ( ) {
67+ $ ( ".header__toggle" ) . removeClass ( "--open" ) ;
68+ } ,
69+ progress : function ( ) {
70+ $ ( ".header__overlay" ) . removeClass ( "--open" ) ;
71+ } ,
72+ complete : function ( ) {
73+ $ ( this ) . removeClass ( "js--open" ) ;
74+ $ ( ".header__toggle, .header__overlay" ) . removeClass ( "--open" ) ;
75+ }
76+ } ) ;
77+ }
2078
2179// SHOW/HIDE NAV
2280function ShowHideNav ( ) {
2381 var previousScroll = 0 , // previous scroll position
2482 $header = $ ( ".header" ) , // just storing header in a variable
2583 navHeight = $header . outerHeight ( ) , // nav height
26- detachPoint = 650 , // after scroll past this nav will be hidden
84+ detachPoint = 576 + 60 , // after scroll past this nav will be hidden
2785 hideShowOffset = 6 ; // scroll value after which nav will be shown/hidden
2886
2987 $ ( window ) . scroll ( function ( ) {
3088 var wW = 1024 ;
31-
3289 // if window width is more than 1024px start show/hide nav
3390 if ( $ ( window ) . width ( ) >= wW ) {
3491 if ( ! $header . hasClass ( "fixed" ) ) {
@@ -41,26 +98,27 @@ function ShowHideNav() {
4198 // if scrolled past detach point -> show nav
4299 if ( currentScroll > detachPoint ) {
43100 if ( ! $header . hasClass ( "fix-nav" ) ) {
44- $header . addClass ( "fix-nav" ) ;
45- }
101+ $header . addClass ( "fix-nav" ) ;
102+ }
46103 }
104+
47105 if ( scrollDifference >= hideShowOffset ) {
48106 if ( currentScroll > previousScroll ) {
49107
50108 // scroll down -> hide nav
51109 if ( ! $header . hasClass ( "hide-nav" ) ) {
52- $header . addClass ( "hide-nav" ) ;
110+ $header . addClass ( "hide-nav" ) ;
53111}
54112 } else {
55113
56114 // scroll up -> show nav
57115 if ( $header . hasClass ( "hide-nav" ) ) {
58- $ ( $header ) . removeClass ( "hide-nav" ) ;
59- }
116+ $ ( $header ) . removeClass ( "hide-nav" ) ;
117+ }
60118 }
61119 }
62- } else {
63-
120+ }
121+ else {
64122 // at the top
65123 if ( currentScroll <= 0 ) {
66124 $header . removeClass ( "hide-nav show-nav" ) ;
@@ -83,10 +141,6 @@ $( $header ).removeClass( "hide-nav" );
83141 } ) ;
84142}
85143
86- // Ensure nav will be shown on resize
87- $ ( window ) . resize ( function ( ) {
88- $ ( ".header" ) . removeClass ( "hide-nav" ) ;
89- } ) ;
90144
91145function openModal ( ) {
92146 $ ( "body" ) . css ( "overflow" , "hidden" ) ;
0 commit comments