Browse Source

fix: change nextTick to onload for anchor scrolling (#1870)

* change nextTick to onload for anchor scrolling

* fix: handle anchor scrollTo if page already loaded

Co-authored-by: Nicolas Giard <github@ngpixel.com>
Seyed Sajad Kahani 5 years ago
parent
commit
4d2d615402
1 changed files with 11 additions and 3 deletions
  1. 11 3
      client/themes/default/components/page.vue

+ 11 - 3
client/themes/default/components/page.vue

@@ -460,11 +460,19 @@ export default {
     })
 
     // -> Handle anchor scrolling
-    this.$nextTick(() => {
-      if (window.location.hash && window.location.hash.length > 1) {
-        this.$vuetify.goTo(window.location.hash, this.scrollOpts)
+    if (window.location.hash && window.location.hash.length > 1) {
+      if (document.readyState === 'complete') {
+        this.$nextTick(() => {
+          this.$vuetify.goTo(window.location.hash, this.scrollOpts)
+        })
+      } else {
+        window.addEventListener('load', () => {
+          this.$vuetify.goTo(window.location.hash, this.scrollOpts)
+        })
       }
+    }
 
+    this.$nextTick(() => {
       this.$refs.container.querySelectorAll(`a[href^="#"], a[href^="${window.location.href.replace(window.location.hash, '')}#"]`).forEach(el => {
         el.onclick = ev => {
           ev.preventDefault()