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 相关文章推荐
为什么要在引入的css或者js文件后面加参数的详细讲解
May 03 Javascript
面向对象继承实例(a如何继承b问题)(自写)
Jul 01 Javascript
javascript ready和load事件的区别示例介绍
Aug 30 Javascript
jquery统计输入文字的个数并对其进行判断
Jan 07 Javascript
jquery教程ajax请求json数据示例
Jan 13 Javascript
js加减乘除丢失精度问题解决方法
May 16 Javascript
基于jQuery实现的仿百度首页滑动选项卡效果代码
Nov 16 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
Nov 17 Javascript
使用electron将vue-cli项目打包成exe的方法
Sep 29 Javascript
vue生命周期的探索
Apr 03 Javascript
详解Vue.js 响应接口
Jul 04 Javascript
原生js实现点击按钮复制内容到剪切板
Nov 19 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抓即时股票信息
2006/10/09 PHP
php去除HTML标签实例
2013/11/06 PHP
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
jquery 选择器部分整理
2009/10/28 Javascript
JS OOP包机制,类创建的方法定义
2009/11/02 Javascript
探讨js中的双感叹号判断
2013/11/11 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
JQ技术实现注册页面带有校验密码强度
2015/07/27 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
Bootstrap模态框禁用空白处点击关闭
2016/10/20 Javascript
如何解决hover在ie6中的兼容性问题
2016/12/15 Javascript
AugularJS从入门到实践(必看篇)
2017/07/10 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
2017/09/03 jQuery
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
新手入门带你学习JavaScript引擎运行原理
2019/06/24 Javascript
详解微信小程序自定义组件的实现及数据交互
2019/07/22 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
2020/07/18 Javascript
[05:56]第十六期——新进3大C之小兔基
2014/06/24 DOTA
[55:16]Mski vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
[46:12]完美世界DOTA2联赛循环赛 DM vs Matador BO2第一场 11.04
2020/11/04 DOTA
python学习之第三方包安装方法(两种方法)
2015/07/30 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
详解用Python练习画个美队盾牌
2019/03/23 Python
python中aioysql(异步操作MySQL)的方法
2019/04/11 Python
Python数据类型之Set集合实例详解
2019/05/07 Python
Python-Seaborn热图绘制的实现方法
2019/07/15 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
2019/08/26 Python
Python Numpy中数据的常用保存与读取方法
2020/04/01 Python
Eclipse配置python默认头过程图解
2020/04/26 Python
Python 读取位于包中的数据文件
2020/08/07 Python
小学优秀班集体申报材料
2014/05/25 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
新教师个人总结
2015/02/06 职场文书
mysql知识点整理
2021/04/05 MySQL
Java数据结构之链表相关知识总结
2021/06/18 Java/Android
python可视化大屏库big_screen示例详解
2021/11/23 Python