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 学习小结(适合新手参考)
Jul 30 Javascript
Js-$.extend扩展方法使方法参数更灵活
Jan 15 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
Apr 15 Javascript
JavaScript中判断对象类型的几种方法总结
Nov 11 Javascript
jquery如何扑捉回车键触发的事件
Apr 24 Javascript
JavaScript基础知识学习笔记
Dec 02 Javascript
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
Apr 30 Javascript
jQuery+PHP星级评分实现方法
Oct 02 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
Jan 04 Javascript
vue项目动态设置页面title及是否缓存页面的问题
Nov 08 Javascript
JavaScript常见事件处理程序实例总结
Jan 05 Javascript
浅谈JSON5解决了JSON的两大痛点
Dec 14 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
解析php mysql 事务处理回滚操作(附实例)
2013/08/05 PHP
CI框架学习笔记(二) -入口文件index.php
2014/10/27 PHP
PHP基于ORM方式操作MySQL数据库实例
2017/06/21 PHP
理解JavaScript中的事件
2006/09/23 Javascript
js 获取中文拼音,Select自动匹配字母获取值的代码
2009/09/23 Javascript
目前流行的JavaScript库的介绍及对比
2013/09/29 Javascript
使用简洁的jQuery方法实现隔行换色功能
2014/01/02 Javascript
JavaScript实现从数组中选出和等于固定值的n个数
2014/09/03 Javascript
javascript框架设计之种子模块
2015/06/23 Javascript
基于jQuery实现返回顶部实例代码
2016/01/01 Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
2017/03/29 Javascript
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
JavaScript作用域、闭包、对象与原型链概念及用法实例总结
2018/08/20 Javascript
vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
2018/10/24 Javascript
如何基于vue-cli3.0构建功能完善的移动端架子
2019/04/24 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
2020/03/02 Javascript
原生js 实现表单验证功能
2021/02/08 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
介绍Python的Urllib库的一些高级用法
2015/04/30 Python
深入理解Python中range和xrange的区别
2017/11/26 Python
django 在原有表格添加或删除字段的实例
2018/05/27 Python
Python数据持久化shelve模块用法分析
2018/06/29 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
python如何获取列表中每个元素的下标位置
2019/07/01 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
2019/07/22 Python
pandas之分组groupby()的使用整理与总结
2020/06/18 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
应用电子技术专业个人求职信
2013/09/21 职场文书
医院门卫岗位职责
2013/12/30 职场文书
求职信名称怎么写
2014/05/26 职场文书
关于感恩的演讲稿800字
2014/08/26 职场文书
招商银行工作证明
2015/06/17 职场文书
食品卫生管理制度
2015/08/06 职场文书
德劲DE1107指针试高灵敏度全波段收音机机评
2022/04/05 无线电