@@ -10,19 +10,21 @@ var main = {
10
10
$ ( window ) . scroll ( function ( ) {
11
11
if ( $ ( ".navbar" ) . offset ( ) . top > 50 ) {
12
12
$ ( ".navbar" ) . addClass ( "top-nav-short" ) ;
13
+ $ ( ".navbar-custom .avatar-container" ) . fadeOut ( 500 ) ;
13
14
} else {
14
15
$ ( ".navbar" ) . removeClass ( "top-nav-short" ) ;
16
+ $ ( ".navbar-custom .avatar-container" ) . fadeIn ( 500 ) ;
15
17
}
16
18
} ) ;
17
-
19
+
18
20
// On mobile, hide the avatar when expanding the navbar menu
19
21
$ ( '#main-navbar' ) . on ( 'show.bs.collapse' , function ( ) {
20
22
$ ( ".navbar" ) . addClass ( "top-nav-expanded" ) ;
21
23
} ) ;
22
24
$ ( '#main-navbar' ) . on ( 'hidden.bs.collapse' , function ( ) {
23
25
$ ( ".navbar" ) . removeClass ( "top-nav-expanded" ) ;
24
26
} ) ;
25
-
27
+
26
28
// On mobile, when clicking on a multi-level navbar menu, show the child links
27
29
$ ( '#main-navbar' ) . on ( "click" , ".navlinks-parent" , function ( e ) {
28
30
var target = e . target ;
@@ -34,7 +36,7 @@ var main = {
34
36
}
35
37
} ) ;
36
38
} ) ;
37
-
39
+
38
40
// Ensure nested navbar menus are not longer than the menu header
39
41
var menus = $ ( ".navlinks-container" ) ;
40
42
if ( menus . length > 0 ) {
@@ -60,12 +62,12 @@ var main = {
60
62
} ) ;
61
63
62
64
fakeMenu . remove ( ) ;
63
- }
64
-
65
- // show the big header image
65
+ }
66
+
67
+ // show the big header image
66
68
main . initImgs ( ) ;
67
69
} ,
68
-
70
+
69
71
initImgs : function ( ) {
70
72
// If the page was large images to randomly select from, choose an image
71
73
if ( $ ( "#header-big-imgs" ) . length > 0 ) {
@@ -78,57 +80,57 @@ var main = {
78
80
var src = imgInfo . src ;
79
81
var desc = imgInfo . desc ;
80
82
main . setImg ( src , desc ) ;
81
-
83
+
82
84
// For better UX, prefetch the next image so that it will already be loaded when we want to show it
83
85
var getNextImg = function ( ) {
84
86
var imgInfo = main . getImgInfo ( ) ;
85
87
var src = imgInfo . src ;
86
- var desc = imgInfo . desc ;
87
-
88
+ var desc = imgInfo . desc ;
89
+
88
90
var prefetchImg = new Image ( ) ;
89
91
prefetchImg . src = src ;
90
92
// if I want to do something once the image is ready: `prefetchImg.onload = function(){}`
91
-
93
+
92
94
setTimeout ( function ( ) {
93
95
var img = $ ( "<div></div>" ) . addClass ( "big-img-transition" ) . css ( "background-image" , 'url(' + src + ')' ) ;
94
96
$ ( ".intro-header.big-img" ) . prepend ( img ) ;
95
97
setTimeout ( function ( ) { img . css ( "opacity" , "1" ) ; } , 50 ) ;
96
-
98
+
97
99
// after the animation of fading in the new image is done, prefetch the next one
98
100
//img.one("transitioned webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){
99
101
setTimeout ( function ( ) {
100
102
main . setImg ( src , desc ) ;
101
103
img . remove ( ) ;
102
104
getNextImg ( ) ;
103
- } , 1000 ) ;
104
- //});
105
+ } , 1000 ) ;
106
+ //});
105
107
} , 6000 ) ;
106
108
} ;
107
-
109
+
108
110
// If there are multiple images, cycle through them
109
111
if ( main . numImgs > 1 ) {
110
112
getNextImg ( ) ;
111
113
}
112
114
}
113
115
} ,
114
-
116
+
115
117
getImgInfo : function ( ) {
116
118
var randNum = Math . floor ( ( Math . random ( ) * main . numImgs ) + 1 ) ;
117
119
var src = main . bigImgEl . attr ( "data-img-src-" + randNum ) ;
118
120
var desc = main . bigImgEl . attr ( "data-img-desc-" + randNum ) ;
119
-
121
+
120
122
return {
121
123
src : src ,
122
124
desc : desc
123
125
}
124
126
} ,
125
-
127
+
126
128
setImg : function ( src , desc ) {
127
129
$ ( ".intro-header.big-img" ) . css ( "background-image" , 'url(' + src + ')' ) ;
128
130
if ( typeof desc !== typeof undefined && desc !== false ) {
129
131
$ ( ".img-desc" ) . text ( desc ) . show ( ) ;
130
132
} else {
131
- $ ( ".img-desc" ) . hide ( ) ;
133
+ $ ( ".img-desc" ) . hide ( ) ;
132
134
}
133
135
}
134
136
} ;
0 commit comments