使用nuxt-link导航到不同页面上的锚定/哈希值会导致问题

时间:2019-04-08 15:32:54

标签: vue.js nuxt.js nuxt

我在网站导航中使用nuxt链接,其中大多数指向首页中的散列元素/锚点,例如:

<nuxt-link
  v-else
  class="text-link"
  :to="localePath('index') + `#${item.hash}`"
>

,如果当前在主页上,但是当我导航到其他站点时,它将完成其工作。 / about,然后单击导航栏nuxt链接(因此,我想从/ about导航到/#hash或/ any-other-site#hash),显示nuxt错误,以检查其显示为“无法读取”的控制台属性'offsetTop'为空”

我在nuxt.config中的路由器配置(如果没有它,我什至无法滚动到与该元素位于同一站点的锚定元素!):

  router: {
    scrollBehavior(to) {
      if (to.hash) {
        return window.scrollTo({ top: document.querySelector(to.hash).offsetTop + window.innerHeight, behavior: 'smooth' });
      }
      return window.scrollTo({ top: 0, behavior: 'smooth' });
      }
  },

1 个答案:

答案 0 :(得分:0)

您尚未在 nuxt-link 中定义哈希。使用:

<nuxt-link
  v-else
  class="text-link"
  :to="{ path: localePath('index'), hash:`#${item.hash}` }"
>