@@ -27,20 +27,24 @@ document.getElementById('fullscreen-images-override').addEventListener('pointeru
2727 }
2828} )
2929
30- let fullscreenImageIndex = Number ( fullscreenImagesOverride . getAttribute ( 'data-index' ) ) ;
30+ const setImageIndex = ( index ) => {
31+ const imageUrls = fullscreenImagesOverride . getAttribute ( 'data-image-urls' ) . split ( ' ' )
32+ fullscreenImagesLeftBtn . style . display = index <= 0 ? 'none' : 'block' ;
33+ fullscreenImagesRightBtn . style . display = index >= imageUrls . length - 1 ? 'none' : 'block' ;
34+ fullscreenImagesOverride . setAttribute ( 'data-index' , index )
35+ }
36+
3137const fullscreenImagesLeftBtn = fullscreenImagesOverride . querySelector ( '.left-btn' )
3238const fullscreenImagesRightBtn = fullscreenImagesOverride . querySelector ( '.right-btn' )
3339const shiftImage = ( shift ) => {
34- fullscreenImageIndex = Number ( fullscreenImagesOverride . getAttribute ( 'data-index' ) ) ;
40+ let index = Number ( fullscreenImagesOverride . getAttribute ( 'data-index' ) ) ;
3541 const imageUrls = fullscreenImagesOverride . getAttribute ( 'data-image-urls' ) . split ( ' ' )
36- fullscreenImageIndex = Math . min ( imageUrls . length - 1 , Math . max ( 0 , fullscreenImageIndex + shift ) ) ;
37- fullscreenImagesLeftBtn . style . display = fullscreenImageIndex <= 0 ? 'none' : 'block' ;
38- fullscreenImagesRightBtn . style . display = fullscreenImageIndex >= imageUrls . length - 1 ? 'none' : 'block' ;
42+ index = Math . min ( imageUrls . length - 1 , Math . max ( 0 , index + shift ) ) ;
43+ setImageIndex ( index )
3944 fullscreenImagesOverride . querySelector ( '.images' ) . scrollTo ( {
40- left : fullscreenImageIndex * window . innerWidth ,
45+ left : index * window . innerWidth ,
4146 behavior : 'smooth'
4247 } ) ;
43- fullscreenImagesOverride . setAttribute ( 'data-index' , fullscreenImageIndex )
4448}
4549
4650fullscreenImagesLeftBtn . addEventListener ( 'pointerup' , ( ) => shiftImage ( - 1 ) )
@@ -55,12 +59,18 @@ document.addEventListener('keydown', e => {
5559 }
5660} )
5761window . addEventListener ( 'resize' , ( ) => {
62+ let index = Number ( fullscreenImagesOverride . getAttribute ( 'data-index' ) ) ;
5863 fullscreenImagesOverride . querySelector ( '.images' ) . scrollTo ( {
59- left : fullscreenImageIndex * window . innerWidth ,
64+ left : index * window . innerWidth ,
6065 behavior : 'instant'
6166 } ) ;
6267} )
6368
69+ fullscreenImagesOverride . querySelector ( '.images' ) . addEventListener ( 'scroll' , e => {
70+ const index = Math . round ( e . target . scrollLeft / window . innerWidth ) ;
71+ setImageIndex ( index ) ;
72+ } )
73+
6474bottomHeaderBtn . addEventListener ( 'pointerup' , ( ) => {
6575 bottomHeaderBtn . classList . add ( 'disappear' ) ;
6676 const element = document . querySelector ( "#statuses" ) ;
0 commit comments