From e0b93aaa10acd4f43da48666443d6319fa7482e5 Mon Sep 17 00:00:00 2001 From: Daniel Kurowski <daniel.kurowski@grifart.cz> Date: Mon, 8 Jun 2020 09:35:59 +0200 Subject: [PATCH] ScrollToTarget: take advantage of scrollToElement() --- src/scrollers/scrollToTarget.ts | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/scrollers/scrollToTarget.ts b/src/scrollers/scrollToTarget.ts index d9c9ffc..a31ec01 100644 --- a/src/scrollers/scrollToTarget.ts +++ b/src/scrollers/scrollToTarget.ts @@ -1,12 +1,19 @@ -import * as Velocity from 'velocity-animate'; import {HashTarget} from '../HashTarget'; -import {EASE_IN_SKIP_OUT_EASING} from '../easing/setupVelocity'; +import {scrollToElement} from './scrollToElement'; +import {assert} from '../assert'; -export function scrollToTarget(hashTarget: HashTarget): void +export function scrollToTarget(hashTarget: HashTarget|string, onScrollFinishedCallback?: () => void): void { - Velocity.animate(hashTarget.getElement(), 'scroll', { - duration: 1200, // todo: different depending on offset from page top? - easing: EASE_IN_SKIP_OUT_EASING, - complete: () => window.location.hash = hashTarget.getHash(), - }); + if (typeof hashTarget === 'string') { + hashTarget = HashTarget.fromString(hashTarget, document); + } + + scrollToElement( + hashTarget.getElement(), + () => { + assert(hashTarget instanceof HashTarget); + window.location.hash = hashTarget.getHash(); + onScrollFinishedCallback !== undefined && onScrollFinishedCallback(); + }, + ); } -- GitLab