vue 移动端记录页面浏览位置的方法


Posted in Javascript onMarch 11, 2020

记录一下本次项目我使用的方法,有更简单便捷的方法,欢迎交流

描述: 假设有a b c 页面

  1. 从a页面 到 b页面 ,b页面到c页面
  2. b到c页面的时候需要记录当前b的浏览位置,c返回到b的时候滚动到上次浏览的位置
  3. b在返回a的时候,在从a进入b 返回的是b的顶部(也就是不记录浏览位置)

做法: 使用到了vuex ,beforeRouteLeave

1.首先在vuex中state定义一个变量来记录当前的浏览的位置

//state中定义数据
 state: {
  carrerTouScroll: {
   height: '' //滚动的距离
   }
  }
 
 
 //mutations 操作state数据
 mutations: {
  setCarrerTouScroll (state, disdance) { //管理赛事 滚动距离
   state.carrerTouScroll.height = disdance
  },
 }
 
 
 //使用getters 有的不加这句也可以,但是有时候不加就不行,所以还是加上吧
  getters: {
   getCarrerTou: state => state.carrerTouScroll 
   }

2.在需要的页面中 我使用了beforeRouteLeave 来记录没有路由离开的时候当前浏览的位置

beforeRouteLeave (to, from, next) { // 离开路由前
  let that = this
  if (to.meta.touFlag) {
   let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
   this.$store.commit('setCarrerTouScroll', scrollTop)
  } else {
   this.$store.commit('setCarrerTouScroll', 0)
  }
  next()
 },

其中to.meta.touFlag 是我自己定义的,因为需要记录的页面很多,我觉的这样比较方便,只需要在route 页面加一个参数就好了

{
  path: '/careerAddMainTeam',
  name: 'CareerAddMainTeam',
  component: CareerAddMainTeam,
  meta: {
   touFlag: true
  }
 },

当然你也可以使用to.name ,如果需要跳转页面不多的话

beforeRouteLeave (to, from, next) { // 离开路由前
  let that = this
  if (to.name === 'CareerAddMainTeam') {
   let scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
   this.$store.commit('setCarrerTouScroll', scrollTop)
  } else {
   this.$store.commit('setCarrerTouScroll', 0)
  }
  next()
 },

3.最后一步就是在每次b页面获取完数据的时候使用$nextTick,让页面恢复到上次浏览的位置

this.$nextTick(() => {
      this.scrollTop = this.$store.state.carrerTouScroll.height
      document.documentElement.scrollTop = this.scrollTop
     })

一定要在b页面获取完数据后使用nextTick,不然是没有效果的

这次就记录到这,如果有别的好方法,请指出

到此这篇关于vue 移动端记录页面浏览位置的方法的文章就介绍到这了,更多相关vue 移动端页面浏览位置内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript操作XML实例代码(获取新闻标题并分页,并分页)
May 25 Javascript
jQuery获取Select选择的Text和Value(详细汇总)
Jan 25 Javascript
jQuery中常用的遍历函数用法实例总结
Sep 01 Javascript
Angular 应用技巧总结
Sep 14 Javascript
微信小程序  Mustache语法详细介绍
Oct 27 Javascript
JavaScript制作弹出层效果
Dec 02 Javascript
Angular4实现鼠标悬停3d倾斜效果
Oct 25 Javascript
Node.js 利用cheerio制作简单的网页爬虫示例
Mar 01 Javascript
Vue.js单向绑定和双向绑定实例分析
Aug 14 Javascript
jQuery实现的页面弹幕效果【测试可用】
Aug 17 jQuery
vue实现键盘输入支付密码功能
Aug 18 Javascript
如何vue使用el-table遍历循环表头和表体数据
Apr 26 Vue.js
Js逆向实现滑动验证码图片还原的示例代码
Mar 10 #Javascript
微信小程序获取公众号文章列表及显示文章的示例代码
Mar 10 #Javascript
jquery实现烟花效果(面向对象)
Mar 10 #jQuery
非常漂亮的js烟花效果
Mar 10 #Javascript
微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)
Mar 10 #Javascript
微信小程序实现搜索功能
Mar 10 #Javascript
原生JS实现烟花效果
Mar 10 #Javascript
You might like
php 攻击方法之谈php+mysql注射语句构造
2009/10/30 PHP
php字符串过滤strip_tags()函数用法实例分析
2019/06/24 PHP
JavaScript 打地鼠游戏代码说明
2010/10/12 Javascript
使用不同的方法结合/合并两个JS数组
2014/09/18 Javascript
javascript中的this详解
2014/12/08 Javascript
node.js中的console.assert方法使用说明
2014/12/10 Javascript
javascript中字体浮动效果的简单实例演示
2015/11/18 Javascript
JS采用绝对定位实现回到顶部效果完整实例
2016/06/20 Javascript
JavaScript基于自定义函数判断变量类型的实现方法
2016/11/23 Javascript
概述如何实现一个简单的浏览器端js模块加载器
2016/12/07 Javascript
windows下vue-cli导入bootstrap样式
2017/04/25 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
JavaScript中创建原子的方法总结
2018/08/26 Javascript
element el-input directive数字进行控制
2018/10/11 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
2020/02/17 Javascript
JavaScript自定义超时API代码实例
2020/04/30 Javascript
jQuery实现视频展示效果
2020/05/30 jQuery
Javascript中的奇葩知识,你知道吗?
2021/01/25 Javascript
一个计算身份证号码校验位的Python小程序
2014/08/15 Python
在Python中使用Mako模版库的简单教程
2015/04/08 Python
python面向对象_详谈类的继承与方法的重载
2017/06/07 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
Python logging日志库空间不足问题解决
2020/09/14 Python
python中编写函数并调用的知识点总结
2021/01/13 Python
英国网上自行车商店:Tredz Bikes
2019/10/29 全球购物
Chi Chi London官网:购买连衣裙和礼服
2020/10/25 全球购物
TecoBuy澳大利亚:在线电子和小工具商店
2020/06/25 全球购物
你常见到的runtime exception
2016/09/05 面试题
公司道歉信范文
2014/01/09 职场文书
赔偿协议书怎么写
2015/01/28 职场文书
重阳节慰问信
2015/02/15 职场文书
运动会主持词大全
2015/07/02 职场文书
教师节大会主持词
2015/07/06 职场文书
运动员代表致辞
2015/07/29 职场文书
课文《燕子》教学反思
2016/02/17 职场文书
Python 处理表格进行成绩排序的操作代码
2021/07/26 Python