vue-router 定位到锚点问题

项目中使用vue-router的scrollBehavior实现定位到锚点,当然已经在history mode下使用了,地址栏已经是localhost:8080/home/basicInfo#video 了 但是没有马上定位到而是要刷新才能定位到video的位置。。
scrollBehavior的配置是参考官方的:https://github.com/vuejs/vue-...

大致情况是父组件中有一个父级菜单来切换router-view中展示的内容,而子级菜单是定位router-view中的组件

阅读 16k
1 个回答

根据 Vue Router 滚动行为例子

const scrollBehavior = function (to, from, savedPosition) {
  if (to.hash) {
    return {
      // 通过 to.hash 的值來找到对应的元素
      selector: to.hash
    }
  }
}
const router = new Router({
  routes: routers,
  mode: 'history',
  base: '/',
  scrollBehavior
})

在父级组件的菜单中:

<router-link :to="/xxx#0">00000</router-link>
<router-link :to="/xxx#1">00000</router-link>

在子组件相应的模块中:

<div class="moudle" id="0"></div>
<div class="moudle" id="1"></div>

这样就实现了history模式下的锚点定位了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏