vue-scroller记录滚动位置的示例代码


Posted in Javascript onJanuary 17, 2018

问题描述:

列表页进入详情页,或者tab页切换,然后再返回列表页,希望能切换到之前滚动位置

解决问题思路:

切换到其他页面前记录位置,返回列表页的时候返回位置。这就需要借助vue-router的beforeRouteEnter和beforeRouteLeave这两个钩子去实现.

还有一种更简单粗暴的方法, vue-scroller.min.js源码中添加宽高不为零判断,实现方式见评论,是最近代码优化的时候发现的。

代码部分:

beforeRouteEnter(to,from,next){

 if(!sessionStorage.askPositon || from.path == '/'){//当前页面刷新不需要切换位置

  sessionStorage.askPositon = '';

  next();

 }else{

  next(vm => {

    if(vm && vm.$refs.scrollerBottom){//通过vm实例访问this

     setTimeout(function () {

      vm.$refs.scrollerBottom.scrollTo(0, sessionStorage.askPositon, false);

     },0)//同步转异步操作

    }

  })

 }

},

beforeRouteLeave(to,from,next){//记录离开时的位置

 sessionStorage.askPositon = this.$refs.scrollerBottom && this.$refs.scrollerBottom.getPosition() && this.$refs.scrollerBottom.getPosition().top;

 next()

},

需要注意的点:

1.熟悉vue-router和vue-scroller的api

2.beforeRouteEnter的时候,是无法通过this去访问vue实例的,需要借助于vm

3.setTimeout 0 的使用

等下周发版的时候,我贴上链接,可以体验下效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js或css实现滚动广告的几种方案
Jan 28 Javascript
JavaScript的事件代理和委托实例分析
Mar 25 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
Aug 22 Javascript
Bootstrap下拉菜单样式
Feb 07 Javascript
js实现导航吸顶效果
Feb 24 Javascript
Node学习记录之cluster模块
May 31 Javascript
jQuery操作DOM_动力节点Java学院整理
Jul 04 jQuery
关于Vue实现组件信息的缓存问题
Aug 23 Javascript
JavaScript页面加载事件实例讲解
Sep 01 Javascript
解决ant design vue 表格a-table二次封装,slots渲染的问题
Oct 28 Javascript
vue 中的动态传参和query传参操作
Nov 09 Javascript
Ajax 的初步实现(使用vscode+node.js+express框架)
Jun 18 Javascript
基于vue监听滚动事件实现锚点链接平滑滚动的方法
Jan 17 #Javascript
详解微信小程序审核不通过的解决方法
Jan 17 #Javascript
swiper动态改变滑动内容的实现方法
Jan 17 #Javascript
基于 Vue.js 2.0 酷炫自适应背景视频登录页面实现方式
Jan 17 #Javascript
使用Vue开发一个实时性时间转换指令
Jan 17 #Javascript
angularjs 页面自适应高度的方法
Jan 17 #Javascript
VueJs监听window.resize方法示例
Jan 17 #Javascript
You might like
一个ftp类(ini.php)
2006/10/09 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
自己写的php curl库实现整站克隆功能
2015/02/12 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
2020/08/24 PHP
js url传值中文乱码之解决之道
2009/11/20 Javascript
真正的JQuery.ajax传递中文参数的解决方法
2011/05/28 Javascript
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
jQuery内部原理和实现方式浅析
2015/02/03 Javascript
PhotoShop给图片自动添加边框及EXIF信息的JS脚本
2015/02/15 Javascript
跟我学习javascript的this关键字
2020/05/28 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
AngularJS页面传参的5种方式
2017/04/01 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(二)
2017/05/11 Javascript
vue中使用localstorage来存储页面信息
2017/11/04 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
nodejs和react实现即时通讯简易聊天室功能
2019/08/21 NodeJs
解决Vue 刷新页面导航显示高亮位置不对问题
2019/12/25 Javascript
使用vue实现HTML页面生成图片的方法
2020/03/12 Javascript
vue自动添加浏览器兼容前后缀操作
2020/08/13 Javascript
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
Python写的一个简单监控系统
2015/06/19 Python
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
2019/09/06 Python
Django Admin后台添加数据库视图过程解析
2020/04/01 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
2020/09/03 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
群众路线教师自我剖析材料
2014/09/29 职场文书
幼儿园三八妇女节活动总结
2015/02/06 职场文书
毕业生登记表班级意见
2015/06/05 职场文书
大学生社会服务心得体会
2016/01/22 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书
用几道面试题来看JavaScript执行机制
2021/04/30 Javascript
你真的了解PHP中的引用符号(&)吗
2021/05/12 PHP