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 相关文章推荐
用js实现键盘方向键翻页功能的代码
Jun 03 Javascript
jQuery学习笔记之DOM对象和jQuery对象
Dec 22 Javascript
jQuery EasyUI API 中文文档 - Dialog对话框
Nov 15 Javascript
Jquery图形报表插件 jqplot简介及参数详解
Oct 10 Javascript
jquery插件开发之实现google+圈子选择功能
Mar 10 Javascript
一不小心就做错的JS闭包面试题
Nov 25 Javascript
详解前端自动化工具gulp自动添加版本号
Dec 20 Javascript
JavaScript初学者必看“new”
Jun 12 Javascript
angular中实现li或者某个元素点击变色的两种方法
Jul 27 Javascript
JS实现的哈夫曼编码示例【原始版与修改版】
Apr 22 Javascript
Vue利用canvas实现移动端手写板的方法
May 03 Javascript
Vue项目中添加锁屏功能实现思路
Jun 29 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操作数组的一些函数整理介绍
2011/07/17 PHP
php表单请求获得数据求和示例
2014/05/15 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
php 多文件上传的实现实例
2016/10/23 PHP
PHP基于接口技术实现简单的多态应用完整实例
2017/04/26 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
JavaScript 页面坐标相关知识整理
2010/01/09 Javascript
Javascript 类型转换方法
2010/10/24 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
2013/07/17 Javascript
一个js控制的导航菜单实例代码
2013/12/03 Javascript
深入理解javascript中defer的作用
2013/12/11 Javascript
nodejs 实现模拟form表单上传文件
2014/07/14 NodeJs
让人蛋疼的JavaScript语法特性
2014/09/30 Javascript
Javascript数组与字典用法分析
2014/12/13 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
jQuery对象与DOM对象转换方法详解
2016/05/10 Javascript
Bootstrap Table使用整理(四)之工具栏
2017/06/09 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
vue实现验证用户名是否可用
2021/01/20 Vue.js
Python程序设计入门(5)类的使用简介
2014/06/16 Python
利用python实现xml与数据库读取转换的方法
2017/06/17 Python
Python提取特定时间段内数据的方法实例
2019/04/01 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
如何解决安装python3.6.1失败
2020/07/01 Python
HTML5的文档结构和新增标签完全解析
2017/04/21 HTML / CSS
暇步士官网:Hush Puppies
2016/09/22 全球购物
美国定制钻石订婚戒指:Ritani
2017/12/08 全球购物
美国宠物用品网站:Value Pet Supplies
2018/03/17 全球购物
社团成立邀请函
2014/01/08 职场文书
股东大会通知
2015/04/24 职场文书
python 实现定时任务的四种方式
2021/04/01 Python
手残删除python之后的补救方法
2021/06/26 Python