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 相关文章推荐
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
Jan 10 Javascript
FusionCharts图表显示双Y轴双(多)曲线
Nov 22 Javascript
js 金额格式化来回转换示例
Feb 23 Javascript
JS根据变量保存方法名并执行方法示例
Apr 04 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
Jan 28 Javascript
arguments对象验证函数的参数是否合法
Jun 26 Javascript
使用jquery+CSS3实现仿windows10开始菜单的下拉导航菜单特效
Sep 24 Javascript
AngularJs中route的使用方法和配置
Feb 04 Javascript
JS 实现可停顿的垂直滚动实例代码
Nov 23 Javascript
JS使用插件cryptojs进行加密解密数据实例
May 11 Javascript
JS伪继承prototype实现方法示例
Jun 20 Javascript
微信小程序工具函数封装
Oct 28 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
php中用数组的方法设置cookies
2011/04/21 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
2013/09/16 PHP
curl实现站外采集的方法和技巧
2014/01/31 PHP
php cookie中点号(句号)自动转为下划线问题
2014/10/21 PHP
php使用Jpgraph绘制简单X-Y坐标图的方法
2015/06/10 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
在IE6下发生Internet Explorer cannot open the Internet site错误
2010/06/21 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
Javascript仿PHP $_GET获取URL中的参数
2014/05/12 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
JavaScript中数组的各种操作的总结(必看篇)
2017/02/13 Javascript
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
jQuery Tree Multiselect使用详解
2017/05/02 jQuery
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
React-Native 组件之 Modal的使用详解
2017/08/08 Javascript
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
Python lambda和Python def区别分析
2014/11/30 Python
分析在Python中何种情况下需要使用断言
2015/04/01 Python
python实现根据用户输入从电影网站获取影片信息的方法
2015/04/07 Python
Python虚拟环境项目实例
2017/11/20 Python
Python实现简单求解给定整数的质因数算法示例
2018/03/25 Python
Python遍历文件夹 处理json文件的方法
2019/01/22 Python
Python3多目标赋值及共享引用注意事项
2019/05/27 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
Python解压 rar、zip、tar文件的方法
2019/11/19 Python
从多个tfrecord文件中无限读取文件的例子
2020/02/17 Python
html5拖曳操作 HTML5实现网页元素的拖放操作
2013/01/02 HTML / CSS
群众路线教育实践活动方案
2014/02/02 职场文书
党支部遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
党员身份证明材料
2015/06/19 职场文书
详解Python requests模块
2021/06/21 Python