1- export function animateScrollTo ( to : string | number | HTMLElement , offset = 0 ) {
2- const element = ( document . scrollingElement as HTMLElement ) || window ;
1+ export function animateScrollTo (
2+ to : HTMLElement | number | string ,
3+ offset = 0 ,
4+ ) : void {
5+ const element = document . scrollingElement ! ;
36
47 if ( typeof to === "string" ) {
58 to = document . querySelector ( to ) as HTMLElement ;
@@ -12,14 +15,13 @@ export function animateScrollTo(to: string | number | HTMLElement, offset = 0) {
1215 }
1316 to = to - offset ;
1417
15- if ( element . scrollTo ) {
16- element . scrollTo ( { top : to , left : 0 , behavior : "smooth" } ) ;
17- } else {
18- element . scrollTop = to ;
19- }
18+ element . scrollTo ( { top : to , left : 0 , behavior : "smooth" } ) ;
2019}
2120
22- export function initLinkScroll ( link : HTMLLinkElement , { offset = 0 } ) {
21+ export function initLinkScroll (
22+ link : HTMLLinkElement ,
23+ { offset = 0 } : { offset : number } ,
24+ ) : void {
2325 if ( link && ( link . dataset . scrollTo || link . href ) ) {
2426 const href =
2527 ( link . dataset . scrollTo as string ) ||
@@ -29,7 +31,9 @@ export function initLinkScroll(link: HTMLLinkElement, { offset = 0 }) {
2931 link . addEventListener ( "click" , ( event ) => {
3032 event . preventDefault ( ) ;
3133 animateScrollTo ( target , offset ) ;
32- setTimeout ( ( ) => window . history . pushState ( { } , "" , href ) , 100 ) ;
34+ setTimeout ( ( ) => {
35+ window . history . pushState ( { } , "" , href ) ;
36+ } , 100 ) ;
3337 } ) ;
3438 }
3539 }
0 commit comments