vue-cli(Vue-Router)滚动行为

6

浏览器滚动到下面去了之后,我们刷新浏览器,会发现滚动条依然在那里,这是浏览器的默认行为,在vue-router中,这样会有问题,那么我们就来解决这个问题: 方法一(通过scroll…

浏览器滚动到下面去了之后,我们刷新浏览器,会发现滚动条依然在那里,这是浏览器的默认行为,在vue-router中,这样会有问题,那么我们就来解决这个问题:

方法一(通过scrollBehavior函数)

index.js中添加的内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
export default new Router({
  // 更改路由模式
  mode:"history",
  // 点击的每一个都是这个颜色
  linkActiveClass:'is-active',
  scrollBehavior(to,from,savePosition){//点击浏览器的前进后退或切换导航触发
        //to   当前需要进入的目标路由对象(要去向哪里)
        //from  离开的路由对象    (从哪里来)
        //savePosition   滚动的坐标
        console.log(to);
        console.log(from);
        console.log(savePosition);
        if(savePosition){
            return savePosition;
        }else{
            return {x:0,y:0}
        }
  }
})

scrollBehavior函数中会传入3个函数,依次设置即可

方法二(通过hash值得变化)

index.js中添加
1
2
3
4
5
6
7
//在上诉的scrollBehavior函数中添加上
        if (to.hash) {
            console.log(to.hash);
            return {
                selector:to.hash
            }
        };
app.vue中添加
1
2
    <router-link to="/document#abc" >document</router-link>
    <router-view/>
document.vue组件中添加
1
2
3
4
5
6
<template>
  <div class="hello">
    <h1>document</h1>
    <p id="abc" >定位到这个元素</p>
  </div>
</template>

作者: huanggr

为您推荐

7

发表评论

电子邮件地址不会被公开。 必填项已用*标注