vue相关问题

vue滚动行为

2019-04-25  本文已影响0人  一条小团团ovo的就很棒

使用场景:点击浏览器自带的前进或后退键,想让页面滚到顶部,或者是保持原来的滚动位置,vue-router可以做的更好

1.返回上一路由原滚动条位置

例:

import Vue from "vue";
import Router from "vue-router";
Vue.use(Router);
export default new Rotuer({
    mode:"history",
    scrollBehavior(to,from,savePosition){
      //saveposition:记录滚动条的坐标,点击前进后退时记录值{x:?,y:?}
        if(saveposition){
            return saveposition;
        }else{
            return {x:0,y:0}
        }
    }
    routes:[
        {
        
         }
    ]
})

2.返回上一路由设置的hash位置

页面上:

<template>
    <div>
          <p @click="goNext()">滚动条返回当前位置</p>
    </div>
</template>
export defauit{
  data(){
      return{
      }
  },
  methods:{
      goNext(){
          let _this=this;
          _this.$router.push("/home#id")
      }
  }
}

路由中:

import Vue from "vue";
import Router from "vue-router";
Vue.use(Router);
export default new Router({
    mode:"histtory",
    scrollBehavior(to,from,savePosition){
        if(to.hash){    //判断是否含有hash
          return {selector:to.hash}  //跳转到锚点
        }
    }
})
上一篇下一篇

猜你喜欢

热点阅读