diff --git a/plugins/scroll-top.ts b/plugins/scroll-top.ts new file mode 100644 index 0000000..7cb6bc4 --- /dev/null +++ b/plugins/scroll-top.ts @@ -0,0 +1,25 @@ +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); + }); + }; +});