1+ const SCROLL_ANIMATION_DURATION = 1000 ;
2+ const CAROUSEL_SCROLL_DOWN_BUTTON_OFFSET = { X : - 7 , Y : - 45 } ;
3+
14$ ( document ) . ready ( ( ) => {
25 let slider = $ ( "#slider" ) ;
36 if ( slider . length ) {
@@ -10,27 +13,28 @@ $(document).ready(() => {
1013 } ) ;
1114 }
1215 // Setup carousel scroll-down button click event
13- let carouselsdb = $ ( "#carousel-scroll-down-button" ) ;
16+ let carousel_scroll_down_button = $ ( "#carousel-scroll-down-button" ) ;
1417 let scrollTopOffset = 1 ;
15- carouselsdb . on ( "click" , ( ) => {
16- $ ( "html, body" ) . animate ( { scrollTop : slider . find ( "img" ) . height ( ) + scrollTopOffset - $ ( "nav" ) . outerHeight ( ) } , "slow" ) ;
17- carouselsdb . blur ( ) ;
18+ carousel_scroll_down_button . on ( "click" , ( ) => {
19+ let calculateFinalPosition = ( ) => slider . find ( "img" ) . height ( ) + scrollTopOffset - $ ( "nav" ) . outerHeight ( ) ;
20+ let animateProperties = { scrollTop : calculateFinalPosition ( ) }
21+ $ ( "html, body" ) . animate ( animateProperties , { duration : SCROLL_ANIMATION_DURATION , specialEasing : { scrollTop : "easeOutCubic" } , step : function ( now , fx ) { fx . end = calculateFinalPosition ( ) ; } } ) ;
22+ carousel_scroll_down_button . blur ( ) ;
1823 } ) ;
1924
2025 // Position carousel scroll-down button
21- let carouselsdbOffset = { X : - 7 , Y : - 35 } ;
2226 $ ( window ) . on ( "scroll" , ( ) => {
2327 let sliderBottom = slider . height ( ) + slider . offset ( ) . top ;
2428 let windowBottom = $ ( window ) . scrollTop ( ) + $ ( window ) . height ( ) ;
2529 if ( $ ( window ) . scrollTop ( ) > sliderBottom ) {
26- carouselsdb . css ( "visibility" , "hidden" ) ;
30+ carousel_scroll_down_button . css ( "visibility" , "hidden" ) ;
2731 } else {
2832 if ( windowBottom < sliderBottom ) {
29- carouselsdb . css ( "transform" , `translate3d(${ - carouselsdb . width ( ) / 2 + carouselsdbOffset . X } px, ${ windowBottom - carouselsdb . height ( ) + carouselsdbOffset . Y } px,0px)` ) ;
33+ carousel_scroll_down_button . css ( "transform" , `translate3d(${ - carousel_scroll_down_button . width ( ) / 2 + CAROUSEL_SCROLL_DOWN_BUTTON_OFFSET . X } px, ${ windowBottom - carousel_scroll_down_button . height ( ) + CAROUSEL_SCROLL_DOWN_BUTTON_OFFSET . Y } px,0px)` ) ;
3034 } else {
31- carouselsdb . css ( "transform" , `translate3d(${ - carouselsdb . width ( ) / 2 + carouselsdbOffset . X } px, ${ slider . height ( ) - carouselsdb . height ( ) + carouselsdbOffset . Y } px, 0px)` ) ;
35+ carousel_scroll_down_button . css ( "transform" , `translate3d(${ - carousel_scroll_down_button . width ( ) / 2 + CAROUSEL_SCROLL_DOWN_BUTTON_OFFSET . X } px, ${ slider . height ( ) - carousel_scroll_down_button . height ( ) + CAROUSEL_SCROLL_DOWN_BUTTON_OFFSET . Y } px, 0px)` ) ;
3236 }
33- carouselsdb . css ( "visibility" , "visible" ) ;
37+ carousel_scroll_down_button . css ( "visibility" , "visible" ) ;
3438 }
3539 } ) . scroll ( ) ;
3640 $ ( window ) . on ( "load resize focus blur" , ( ) => $ ( window ) . scroll ( ) ) ;
0 commit comments