|
1 | 1 | /*! |
2 | | - * smooth-scroll v9.1.0: Animate scrolling to anchor links |
| 2 | + * smooth-scroll v9.1.1: Animate scrolling to anchor links |
3 | 3 | * (c) 2016 Chris Ferdinandi |
4 | 4 | * MIT License |
5 | 5 | * http://github.com/cferdinandi/smooth-scroll |
|
343 | 343 |
|
344 | 344 | // Options and overrides |
345 | 345 | var overrides = getDataOptions( toggle ? toggle.getAttribute('data-options') : null ); |
346 | | - var settings = extend( settings || defaults, options || {}, overrides ); // Merge user options with defaults |
| 346 | + var animateSettings = extend( settings || defaults, options || {}, overrides ); // Merge user options with defaults |
347 | 347 |
|
348 | 348 | // Selectors and variables |
349 | 349 | var isNum = Object.prototype.toString.call( anchor ) === '[object Number]' ? true : false; |
350 | 350 | var anchorElem = isNum ? null : ( anchor === '#' ? root.document.documentElement : root.document.querySelector(anchor) ); |
351 | 351 | if ( !isNum && !anchorElem ) return; |
352 | 352 | var startLocation = root.pageYOffset; // Current location on the page |
353 | | - if ( !fixedHeader ) { fixedHeader = root.document.querySelector( settings.selectorHeader ); } // Get the fixed header if not already set |
| 353 | + if ( !fixedHeader ) { fixedHeader = root.document.querySelector( animateSettings.selectorHeader ); } // Get the fixed header if not already set |
354 | 354 | if ( !headerHeight ) { headerHeight = getHeaderHeight( fixedHeader ); } // Get the height of a fixed header if one exists and not already set |
355 | | - var endLocation = isNum ? anchor : getEndLocation( anchorElem, headerHeight, parseInt(settings.offset, 10) ); // Location to scroll to |
| 355 | + var endLocation = isNum ? anchor : getEndLocation( anchorElem, headerHeight, parseInt(animateSettings.offset, 10) ); // Location to scroll to |
356 | 356 | var distance = endLocation - startLocation; // distance to travel |
357 | 357 | var documentHeight = getDocumentHeight(); |
358 | 358 | var timeLapsed = 0; |
359 | 359 | var percentage, position; |
360 | 360 |
|
361 | 361 | // Update URL |
362 | 362 | if ( !isNum ) { |
363 | | - updateUrl(anchor, settings.updateURL); |
| 363 | + updateUrl(anchor, animateSettings.updateURL); |
364 | 364 | } |
365 | 365 |
|
366 | 366 | /** |
|
377 | 377 | if ( !isNum ) { |
378 | 378 | anchorElem.focus(); |
379 | 379 | } |
380 | | - settings.callback( anchor, toggle ); // Run callbacks after animation complete |
| 380 | + animateSettings.callback( anchor, toggle ); // Run callbacks after animation complete |
381 | 381 | } |
382 | 382 | }; |
383 | 383 |
|
|
387 | 387 | */ |
388 | 388 | var loopAnimateScroll = function () { |
389 | 389 | timeLapsed += 16; |
390 | | - percentage = ( timeLapsed / parseInt(settings.speed, 10) ); |
| 390 | + percentage = ( timeLapsed / parseInt(animateSettings.speed, 10) ); |
391 | 391 | percentage = ( percentage > 1 ) ? 1 : percentage; |
392 | | - position = startLocation + ( distance * easingPattern(settings.easing, percentage) ); |
| 392 | + position = startLocation + ( distance * easingPattern(animateSettings.easing, percentage) ); |
393 | 393 | root.scrollTo( 0, Math.floor(position) ); |
394 | 394 | stopAnimateScroll(position, endLocation, animationInterval); |
395 | 395 | }; |
|
0 commit comments