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事件冒泡详解和捕获、阻止方法
Apr 12 Javascript
JQuery以JSON方式提交数据到服务端示例代码
May 05 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
Feb 07 Javascript
jQuery实现简单的回到顶部totop功能示例
Oct 16 jQuery
使用watch监听路由变化和watch监听对象的实例
Feb 24 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
Jan 06 Javascript
Vue组件教程之Toast(Vue.extend 方式)详解
Jan 27 Javascript
vue-router 起步步骤详解
Mar 26 Javascript
微信小程序实现获取准确的腾讯定位地址功能示例
Mar 27 Javascript
小程序实现左滑删除效果
Jul 25 Javascript
对layer弹出框中icon数字参数的说明介绍
Sep 04 Javascript
浅析JavaScript中的变量提升
Jun 01 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
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
2013/08/10 PHP
WordPress自定义时间显示格式
2015/03/27 PHP
PHP实现通过正则表达式替换回调的内容标签
2015/06/15 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
2016/09/01 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
使用HTML+CSS+JS制作简单的网页菜单界面
2015/07/27 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法
2016/08/05 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
vue-cli中打包图片路径错误的解决方法
2017/10/26 Javascript
React.Js添加与删除onScroll事件的方法详解
2017/11/03 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
jquery实现的分页显示功能示例
2019/08/23 jQuery
vue遍历对象中的数组取值示例
2019/11/07 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
2020/12/10 Vue.js
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
Python ORM框架SQLAlchemy学习笔记之数据查询实例
2014/06/10 Python
使用python实现正则匹配检索远端FTP目录下的文件
2015/03/25 Python
python爬取内容存入Excel实例
2019/02/20 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
python安装本地whl的实例步骤
2019/10/12 Python
Python爬取爱奇艺电影信息代码实例
2019/11/26 Python
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
商务主管岗位职责
2013/12/08 职场文书
宝葫芦的秘密观后感
2015/06/11 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
爱岗敬业事迹材料
2019/06/20 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js
apache基于端口创建虚拟主机的示例
2021/04/24 Servers
vue3获取当前路由地址
2022/02/18 Vue.js