From aceb33fe6ae5944e2c4f555a0119d305a3f8bc1e Mon Sep 17 00:00:00 2001 From: Evert Prants Date: Sun, 16 Oct 2022 17:42:41 +0300 Subject: [PATCH] scroll top on navigate --- plugins/scroll-top.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/scroll-top.ts 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); + }); + }; +});