1010 *********************************************/
1111
1212var Elevator = function ( options ) {
13-
14- 'use strict' ;
13+ "use strict" ;
1514
1615 // Elements
1716 var body = null ;
@@ -39,17 +38,18 @@ var Elevator = function(options) {
3938 */
4039
4140 // Thanks Mr Penner - http://robertpenner.com/easing/
42- function easeInOutQuad ( t , b , c , d ) {
41+ function easeInOutQuad ( t , b , c , d ) {
4342 t /= d / 2 ;
44- if ( t < 1 ) return c / 2 * t * t + b ;
43+ if ( t < 1 ) return c / 2 * t * t + b ;
4544 t -- ;
46- return - c / 2 * ( t * ( t - 2 ) - 1 ) + b ;
45+ return - c / 2 * ( t * ( t - 2 ) - 1 ) + b ;
4746 }
4847
49- function extendParameters ( options , defaults ) {
50- for ( var option in defaults ) {
51- var t = options [ option ] === undefined && typeof option !== "function" ;
52- if ( t ) {
48+ function extendParameters ( options , defaults ) {
49+ for ( var option in defaults ) {
50+ var t =
51+ options [ option ] === undefined && typeof option !== "function" ;
52+ if ( t ) {
5353 options [ option ] = defaults [ option ] ;
5454 }
5555 }
@@ -58,13 +58,13 @@ var Elevator = function(options) {
5858
5959 function getVerticalOffset ( element ) {
6060 var verticalOffset = 0 ;
61- while ( element ) {
61+ while ( element ) {
6262 verticalOffset += element . offsetTop || 0 ;
6363 element = element . offsetParent ;
6464 }
6565
66- if ( verticalPadding ) {
67- verticalOffset = verticalOffset - verticalPadding ;
66+ if ( verticalPadding ) {
67+ verticalOffset = verticalOffset - verticalPadding ;
6868 }
6969
7070 return verticalOffset ;
@@ -75,65 +75,73 @@ var Elevator = function(options) {
7575 */
7676
7777 // Time is passed through requestAnimationFrame, what a world!
78- function animateLoop ( time ) {
79- if ( ! startTime ) {
78+ function animateLoop ( time ) {
79+ if ( ! startTime ) {
8080 startTime = time ;
8181 }
8282
8383 var timeSoFar = time - startTime ;
84- var easedPosition = easeInOutQuad ( timeSoFar , startPosition , endPosition - startPosition , duration ) ;
84+ var easedPosition = easeInOutQuad (
85+ timeSoFar ,
86+ startPosition ,
87+ endPosition - startPosition ,
88+ duration
89+ ) ;
8590
8691 window . scrollTo ( 0 , easedPosition ) ;
8792
88- if ( timeSoFar < duration ) {
93+ if ( timeSoFar < duration ) {
8994 animation = requestAnimationFrame ( animateLoop ) ;
9095 } else {
9196 animationFinished ( ) ;
9297 }
9398 }
9499
95- // ELEVATE!
96- // /
97- // ____
98- // .' '=====<0
99- // |======|
100- // |======|
101- // [IIIIII[\--()
102- // |_______|
103- // C O O O D
104- // C O O O D
105- // C O O O D
106- // C__O__O__O__D
107- // [_____________]
100+ // ELEVATE!
101+ // /
102+ // ____
103+ // .' '=====<0
104+ // |======|
105+ // |======|
106+ // [IIIIII[\--()
107+ // |_______|
108+ // C O O O D
109+ // C O O O D
110+ // C O O O D
111+ // C__O__O__O__D
112+ // [_____________]
108113 this . elevate = function ( ) {
109-
110- if ( elevating ) {
114+ if ( elevating ) {
111115 return ;
112116 }
113117
114118 elevating = true ;
115- startPosition = ( document . documentElement . scrollTop || body . scrollTop ) ;
119+ startPosition = document . documentElement . scrollTop || body . scrollTop ;
116120 updateEndPosition ( ) ;
117121
118122 // No custom duration set, so we travel at pixels per millisecond. (0.75px per ms)
119- if ( ! customDuration ) {
120- duration = ( Math . abs ( endPosition - startPosition ) * 1.5 ) ;
123+ if ( ! customDuration ) {
124+ duration = Math . abs ( endPosition - startPosition ) * 1.5 ;
121125 }
122126
123- requestAnimationFrame ( animateLoop ) ;
127+ requestAnimationFrame ( animateLoop ) ;
124128
125129 // Start music!
126- if ( mainAudio ) {
130+ if ( mainAudio ) {
127131 mainAudio . play ( ) ;
128132 }
129133
130- if ( startCallback ) {
134+ if ( startCallback ) {
131135 startCallback ( ) ;
132136 }
133137 } ;
134138
135139 function browserMeetsRequirements ( ) {
136- return window . requestAnimationFrame && window . Audio && window . addEventListener ;
140+ return (
141+ window . requestAnimationFrame &&
142+ window . Audio &&
143+ window . addEventListener
144+ ) ;
137145 }
138146
139147 function resetPositions ( ) {
@@ -143,39 +151,36 @@ var Elevator = function(options) {
143151 }
144152
145153 function updateEndPosition ( ) {
146- if ( targetElement ) {
154+ if ( targetElement ) {
147155 endPosition = getVerticalOffset ( targetElement ) ;
148156 }
149157 }
150158
151159 function animationFinished ( ) {
152-
153160 resetPositions ( ) ;
154161
155162 // Stop music!
156- if ( mainAudio ) {
163+ if ( mainAudio ) {
157164 mainAudio . pause ( ) ;
158165 mainAudio . currentTime = 0 ;
159166 }
160167
161- if ( endAudio ) {
168+ if ( endAudio ) {
162169 endAudio . play ( ) ;
163170 }
164171
165- if ( endCallback ) {
172+ if ( endCallback ) {
166173 endCallback ( ) ;
167174 }
168175 }
169176
170177 function onWindowBlur ( ) {
171-
172178 // If animating, go straight to the top. And play no more music.
173- if ( elevating ) {
174-
175- cancelAnimationFrame ( animation ) ;
179+ if ( elevating ) {
180+ cancelAnimationFrame ( animation ) ;
176181 resetPositions ( ) ;
177182
178- if ( mainAudio ) {
183+ if ( mainAudio ) {
179184 mainAudio . pause ( ) ;
180185 mainAudio . currentTime = 0 ;
181186 }
@@ -185,12 +190,12 @@ var Elevator = function(options) {
185190 }
186191 }
187192
188- function bindElevateToElement ( element ) {
189- if ( element . addEventListener ) {
190- element . addEventListener ( ' click' , that . elevate , false ) ;
193+ function bindElevateToElement ( element ) {
194+ if ( element . addEventListener ) {
195+ element . addEventListener ( " click" , that . elevate , false ) ;
191196 } else {
192197 // Older browsers
193- element . attachEvent ( ' onclick' , function ( ) {
198+ element . attachEvent ( " onclick" , function ( ) {
194199 updateEndPosition ( ) ;
195200 document . documentElement . scrollTop = endPosition ;
196201 document . body . scrollTop = endPosition ;
@@ -199,7 +204,7 @@ var Elevator = function(options) {
199204 }
200205 }
201206
202- function init ( _options ) {
207+ function init ( _options ) {
203208 // Bind to element click event, if need be.
204209 body = document . body ;
205210
@@ -215,51 +220,53 @@ var Elevator = function(options) {
215220
216221 _options = extendParameters ( _options , defaults ) ;
217222
218- if ( _options . element ) {
219- bindElevateToElement ( _options . element ) ;
223+ if ( _options . element ) {
224+ bindElevateToElement ( _options . element ) ;
220225 }
221226
222227 // Take the stairs instead
223- if ( ! browserMeetsRequirements ( ) ) {
228+ if ( ! browserMeetsRequirements ( ) ) {
224229 return ;
225230 }
226231
227- if ( _options . duration ) {
232+ if ( _options . duration ) {
228233 customDuration = true ;
229234 duration = _options . duration ;
230235 }
231236
232- if ( _options . targetElement ) {
237+ if ( _options . targetElement ) {
233238 targetElement = _options . targetElement ;
234239 }
235240
236- if ( _options . verticalPadding ) {
241+ if ( _options . verticalPadding ) {
237242 verticalPadding = _options . verticalPadding ;
238243 }
239244
240- window . addEventListener ( ' blur' , onWindowBlur , false ) ;
245+ window . addEventListener ( " blur" , onWindowBlur , false ) ;
241246
242- if ( _options . mainAudio ) {
243- mainAudio = new Audio ( _options . mainAudio ) ;
244- mainAudio . setAttribute ( ' preload' , _options . preloadAudio ) ;
245- mainAudio . setAttribute ( ' loop' , _options . loopAudio ) ;
247+ if ( _options . mainAudio ) {
248+ mainAudio = new Audio ( _options . mainAudio ) ;
249+ mainAudio . setAttribute ( " preload" , _options . preloadAudio ) ;
250+ mainAudio . setAttribute ( " loop" , _options . loopAudio ) ;
246251 }
247252
248- if ( _options . endAudio ) {
249- endAudio = new Audio ( _options . endAudio ) ;
250- endAudio . setAttribute ( ' preload' , ' true' ) ;
253+ if ( _options . endAudio ) {
254+ endAudio = new Audio ( _options . endAudio ) ;
255+ endAudio . setAttribute ( " preload" , " true" ) ;
251256 }
252257
253- if ( _options . endCallback ) {
258+ if ( _options . endCallback ) {
254259 endCallback = _options . endCallback ;
255260 }
256261
257- if ( _options . startCallback ) {
262+ if ( _options . startCallback ) {
258263 startCallback = _options . startCallback ;
259264 }
260265 }
261266
262267 init ( options ) ;
263268} ;
264269
265- module . exports = Elevator ;
270+ if ( typeof module !== "undefined" && module . exports ) {
271+ module . exports = Elevator ;
272+ }
0 commit comments