锚点跳转遮挡、vue锚点定位失效问题

2,001 阅读1分钟

1.导航栏头部固定,跳转锚点部分内容被遮挡

*假设导航栏高度为60px,设置锚点跳转box的css

   #blender {
        padding-top: 60px;
        margin-top: -60px;
    }

2.跳转至锚点,刷新vue-router失效

假设跳转到#blender,路由/blender。这时刷新页面,会出现空白,因为找不到此路由。想使用beforeRouterEnter,结果是失效的。

解决办法(使用scrollIntoView):

html:
<a @click="handleLinkChange('blender')"></a>
js:
handleLinkChange (id) {
    document.querySelector('#' + id).scrollIntoView(true)
}