UNPKG

bootstrap-italia

Version:

Bootstrap Italia è un tema Bootstrap 5 per la creazione di applicazioni web nel pieno rispetto delle linee guida di design per i siti internet e i servizi digitali della PA

49 lines (41 loc) 1.43 kB
/** * -------------------------------------------------------------------------- * Bootstrap Italia (https://italia.github.io/bootstrap-italia/) * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE) * -------------------------------------------------------------------------- */ import anime from 'animejs/lib/anime.es.js' const AnimeDefault = { duration: 800, easing: 'easeInOutSine', } /** * * @param {number} scrollTop * @param {Object} config - duration, easing, complete, update, ... */ export const documentScrollTo = (scrollTop, config) => { if (typeof window === 'undefined' || typeof document === 'undefined') { return } const onComplete = (typeof config === 'object' ? config : {}).complete const scrollElement = window.document.scrollingElement || window.document.body || window.document.documentElement const prevScrollBehavior = scrollElement.style.scrollBehavior config = { scrollTop: scrollTop || 0, ...AnimeDefault, ...(typeof config === 'object' ? config : {}), } scrollElement.style.scrollBehavior = 'auto' config.complete = (anim) => { scrollElement.style.scrollBehavior = prevScrollBehavior if (typeof onComplete === 'function') { onComplete(anim) } } anime({ targets: scrollElement, ...config, }) }