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 相关文章推荐
锋利的jQuery 要点归纳(一) jQuery选择器
Mar 21 Javascript
理解Javascript_10_对象模型
Oct 16 Javascript
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
Jan 17 Javascript
浅谈JavaScript字符集
May 22 Javascript
Javascript优化技巧之短路表达式详细介绍
Mar 27 Javascript
JS打字效果的动态菜单代码分享
Aug 21 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
Oct 04 Javascript
值得分享的Bootstrap Table使用教程
Nov 23 Javascript
three.js绘制地球、飞机与轨迹的效果示例
Feb 28 Javascript
Bootstrap DateTime Picker日历控件简单应用
Mar 25 Javascript
vue移动端监听滚动条高度的实现方法
Sep 03 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
Mar 17 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
PHP输出控制功能在简繁体转换中的应用
2006/10/09 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
PHP实现打包下载文件的方法示例
2017/10/07 PHP
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
纯JS实现的批量图片预览加载功能
2011/08/14 Javascript
JS文本框默认值处理详解
2013/07/10 Javascript
网站内容禁止复制和粘贴、另存为的js代码
2014/02/26 Javascript
jquery实现网页的页面平滑滚动效果代码
2015/11/02 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
jQuery图片轮播插件——前端开发必看
2016/05/31 Javascript
jQuery监听文件上传实现进度条效果的方法
2016/10/16 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
es6数值的扩展方法
2019/03/11 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
vuex vue简单使用知识点总结
2019/08/29 Javascript
Python实现给文件添加内容及得到文件信息的方法
2015/05/28 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
2018/04/02 Python
更新修改后的Python模块方法
2019/03/03 Python
值得收藏的10道python 面试题
2019/04/15 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
2019/10/28 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
python在一个范围内取随机数的简单实例
2020/08/16 Python
详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)
2020/11/16 HTML / CSS
SmartBuyGlasses美国官网:太阳眼镜和眼镜
2017/08/20 全球购物
澳大利亚一站式数码相机商店:CameraPro
2020/03/09 全球购物
奥林匹亚体育:Olympia Sports
2020/12/30 全球购物
别名指示符是什么
2012/10/08 面试题
mysql有关权限的表都有哪几个
2015/04/22 面试题
校本教研工作方案
2014/01/14 职场文书
建筑系毕业生自我鉴定
2014/01/24 职场文书
先进党支部事迹材料
2014/12/24 职场文书