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 相关文章推荐
在IE下:float属性会影响offsetTop的取值
Dec 22 Javascript
IE不出现Flash激活框的小发现的js实现方法
Sep 07 Javascript
非常漂亮的JS代码经典广告
Oct 21 Javascript
javascript web页面刷新的方法收集
Jul 02 Javascript
JS获取整个页面文档的实现代码
Dec 15 Javascript
Javascript 面向对象(三)接口代码
May 23 Javascript
js实现网页倒计时、网站已运行时间功能的代码3例
Apr 14 Javascript
javascript中eval解析JSON字符串
Feb 27 Javascript
深入理解jQuery layui分页控件的使用
Aug 17 Javascript
浅谈 Vue v-model指令的实现原理
Jun 08 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
Mar 05 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
Sep 04 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
mysql 全文搜索 技巧
2007/04/27 PHP
php 无限级 SelectTree 类
2009/05/19 PHP
Yii框架上传图片用法总结
2016/03/28 PHP
总结PHP中数值计算的注意事项
2016/08/14 PHP
Yii2框架制作RESTful风格的API快速入门教程
2016/11/08 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
2016/11/14 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
js截取字符串的两种方法及区别详解
2013/11/05 Javascript
node.js中的fs.write方法使用说明
2014/12/15 Javascript
jQuery()方法的第二个参数详解
2015/04/29 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
常用的Javascript设计模式小结
2015/12/09 Javascript
AngularJS删除路由中的#符号的方法
2016/09/20 Javascript
策略模式实现 Vue 动态表单验证的方法
2019/09/16 Javascript
编写Python脚本抓取网络小说来制作自己的阅读器
2015/08/20 Python
Python用imghdr模块识别图片格式实例解析
2018/01/11 Python
Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例
2018/02/13 Python
python3调用R的示例代码
2018/02/23 Python
python 定义给定初值或长度的list方法
2018/06/23 Python
Python基于多线程操作数据库相关问题分析
2018/07/11 Python
python实现顺时针打印矩阵
2019/03/02 Python
Python实现某论坛自动签到功能
2019/08/20 Python
python返回数组的索引实例
2019/11/28 Python
Python tkinter模版代码实例
2020/02/05 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
2020/07/07 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
Python3.9新特性详解
2020/10/10 Python
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
在C#中如何实现多态
2014/07/02 面试题
《观舞记》教学反思
2014/04/16 职场文书
公司董事长岗位职责
2014/06/08 职场文书
综治工作汇报材料
2014/10/27 职场文书
学生早退检讨书(范文)
2019/08/19 职场文书
慰问信(范文3篇)
2019/10/23 职场文书
Mysql 如何查询时间段交集
2021/06/08 MySQL