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中的$.getJSON 使用说明
Mar 10 Javascript
TimergliderJS 一个基于jQuery的时间轴插件
Dec 07 Javascript
js弹出层永远居中实现思路及代码
Nov 29 Javascript
总结JavaScript中布尔操作符||与&amp;&amp;的使用技巧
Nov 17 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)
Dec 02 Javascript
vue+vuex+axios实现登录、注册页权限拦截
Mar 09 Javascript
vue 的keep-alive缓存功能的实现
Mar 22 Javascript
JavaScript中的&quot;=、==、===&quot;区别讲解
Jan 22 Javascript
java实现单链表增删改查的实例代码详解
Aug 30 Javascript
jQuery实时统计输入框字数及限制
Jun 24 jQuery
Javascript中window.name属性详解
Nov 19 Javascript
vue递归实现树形组件
Jul 15 Vue.js
详解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
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
PHP7常量数组用法分析
2016/09/26 PHP
使用Codeigniter重写insert的方法(推荐)
2017/03/23 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
2019/05/06 PHP
js活用事件触发对象动作
2008/08/10 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
调用innerHTML之后onclick失效问题的解决方法
2014/01/28 Javascript
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
JavaScript如何禁止Backspace键
2015/12/02 Javascript
JavaScript 七大技巧(二)
2015/12/13 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
JS原型链 详解及示例代码
2016/09/06 Javascript
用jquery快速解决IE输入框不能输入的问题
2016/10/04 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
vue3.0中的双向数据绑定方法及优缺点
2019/08/01 Javascript
[11:44]Ti9 OG夺冠时刻
2019/08/25 DOTA
python实现超简单端口转发的方法
2015/03/13 Python
Python的Flask框架中@app.route的用法教程
2015/03/31 Python
解决python使用open打开文件中文乱码的问题
2017/12/29 Python
python进程的状态、创建及使用方法详解
2019/12/06 Python
Python 实现二叉查找树的示例代码
2020/12/21 Python
纯CSS3实现扇形动画菜单(简化版)实例源码
2017/01/17 HTML / CSS
Parfumdreams芬兰:购买香水和化妆品
2021/02/13 全球购物
应届毕业生求职信范例分享
2013/12/17 职场文书
初三物理教学反思
2014/01/21 职场文书
发展部经理职责规定
2014/02/22 职场文书
高中生职业规划范文
2014/03/09 职场文书
工作会议主持词
2014/03/17 职场文书
大型活动组织方案
2014/05/10 职场文书
2014迎接教师节演讲稿
2014/09/10 职场文书
涉外离婚协议书怎么写
2014/11/20 职场文书
2014年基建工作总结
2014/12/12 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
MySQL查询日期时间
2022/05/15 MySQL