vue返回上一页面时回到原先滚动的位置的方法


Posted in Javascript onDecember 20, 2018

项目结束,测试时发现在首页商品列表中,向上滑动几页后点击进入详情,从详情页面返回商品列表时,页面回到了最顶部,测试不通过说是用户体验不好,要求从哪里点击进去返回该页面时回到原先的滚动页面。
思路:因为vue是单页面应用,进入其他页面时会销毁该页面,用keep-alive不让其刷新,具体实现为:

(1).在App.vue中加入:

<template>
 <div id="app">
  <!--<router-view/>-->
  <!--页面返回不刷新-->
  <keep-alive>
   <router-view v-if="$route.meta.keepAlive"></router-view>
  </keep-alive>
  <router-view v-if="!$route.meta.keepAlive"></router-view>
 </div>
</template>

(2).index.js页面

export default new Router({
 routes: [{
  path: '/',
  name: 'index',
  component: index,
  meta: {
   keepAlive: true
  }
 },

这样在index.vue中,mounted方发只走一次,在浏览器上实现了返回原来滚动位置的目的。但是在手机上测试,发现没用,解决手机上实现目的的方法:

//在页面离开时记录滚动位置
beforeRouteLeave (to, from, next) {
  this.scrollTop = document.documentElement.scrollTop || document.body.scrollTop
  next()
 },
//进入该页面时,用之前保存的滚动位置赋值
beforeRouteEnter (to, from, next) {
  next(vm => {
   document.body.scrollTop = vm.scrollTop
  })
 },

OK!实现!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 中的replace方法说明
Apr 13 Javascript
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
Jan 15 Javascript
js charAt的使用示例
Feb 18 Javascript
Jquery Post处理后不进入回调的原因及解决方法
Jul 15 Javascript
JS数组array元素的添加和删除方法代码实例
Jun 01 Javascript
jQuery实现可编辑表格并生成json结果(实例代码)
Jul 19 jQuery
vue.js移动端app之上拉加载以及下拉刷新实战
Sep 11 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
Nov 02 Javascript
Vue实现远程获取路由与页面刷新导致404错误的解决
Jan 31 Javascript
浅谈一个webpack构建速度优化误区
Jun 24 Javascript
JavaScript中ES6规范中let和const的用法和区别
Aug 06 Javascript
动态规划之使用备忘录来改进Javascript函数
Apr 07 Javascript
详解Vue.js自定义tipOnce指令用法实例
Dec 19 #Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
Dec 19 #Javascript
JavaScript链式调用实例浅析
Dec 19 #Javascript
浅谈vue后台管理系统权限控制思考与实践
Dec 19 #Javascript
如何为vue的项目添加单元测试
Dec 19 #Javascript
浅谈Angular7 项目开发总结
Dec 19 #Javascript
mockjs+vue页面直接展示数据的方法
Dec 19 #Javascript
You might like
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
php递归json类实例
2014/12/02 PHP
WAMP环境中扩展oracle函数库(oci)
2015/06/26 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
2017/02/04 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/01/13 Javascript
jquery ui resizable bug解决方法
2010/10/26 Javascript
JS俄罗斯方块,包含完整的设计理念
2010/12/11 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
JS实现带鼠标效果的头像及文章列表代码
2015/09/27 Javascript
详解JavaScript函数
2015/12/01 Javascript
nodejs socket实现的服务端和客户端功能示例
2017/06/02 NodeJs
浅谈Node.js ORM框架Sequlize之表间关系
2017/07/24 Javascript
Three.js利用顶点绘制立方体的方法详解
2017/09/27 Javascript
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
JS实现滑动拼图验证功能完整示例
2020/03/29 Javascript
vue实现顶部菜单栏
2020/11/08 Javascript
Python中用Descriptor实现类级属性(Property)详解
2014/09/18 Python
Python实现微信消息防撤回功能的实例代码
2019/04/29 Python
python文档字符串(函数使用说明)使用详解
2019/07/30 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
解决pytorch 数据类型报错的问题
2021/03/03 Python
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
2015/03/25 面试题
施工安全协议书
2013/12/11 职场文书
招商专员岗位职责
2014/02/08 职场文书
一年级语文教学反思
2014/02/13 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
庆六一活动总结
2014/08/29 职场文书
股指期货心得体会
2014/09/10 职场文书
工厂标语大全
2014/10/06 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书
广告业务员岗位职责
2015/02/13 职场文书
索尼ICF-36收音机评测
2022/04/30 无线电