lunasqu.ee-nuxt/plugins/scroll-top.ts

26 lines
520 B
TypeScript

import { defineNuxtPlugin } from '#imports';
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.$router.options.scrollBehavior = async (to, from, savedPosition) => {
let goTo;
if (to.hash) {
goTo = {
el: to.hash,
behavior: 'smooth',
top: 64,
};
} else if (savedPosition) {
goTo = savedPosition;
} else {
goTo = { top: 0 };
}
return new Promise((resolve) => {
setTimeout(() => {
resolve(goTo);
}, 100);
});
};
});