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实现的Email中的收件人效果(按del键删除)
Mar 20 Javascript
SyntaxHighlighter语法高亮插件使用说明
Aug 14 Javascript
创建公共调用 jQuery Ajax 带返回值
Aug 01 Javascript
表头固定(利用jquery实现原理介绍)
Nov 08 Javascript
jquery解析XML字符串和XML文件的方法说明
Feb 21 Javascript
DOM 高级编程
May 06 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
Jul 01 Javascript
vue.js 获取当前自定义属性值
Jun 01 Javascript
使用JavaScript实现表格编辑器(实例讲解)
Aug 02 Javascript
JS 仿支付宝input文本输入框放大组件的实例
Nov 14 Javascript
详解react阻止无效重渲染的多种方式
Dec 11 Javascript
Vue.js 中的实用工具方法【推荐】
Jul 04 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数据库操作类代码(增,删,改,查)
2013/04/08 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
php实现的用户查询类实例
2015/06/18 PHP
PHP MYSQL实现登陆和模糊查询两大功能
2016/02/05 PHP
javascript div 遮罩层封锁整个页面
2009/07/10 Javascript
asp.net HttpHandler实现图片防盗链
2009/11/09 Javascript
js实现带按钮的上下滚动效果
2015/05/12 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
BootStrap文件上传样式超好看【持续更新】
2016/05/10 Javascript
Angularjs+bootstrap+table多选(全选)支持单击行选中实现编辑、删除功能
2017/03/27 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
Vue.js组件实现选项卡以及切换特效
2019/07/24 Javascript
在Koa.js中实现文件上传的接口功能
2019/10/08 Javascript
浅谈React中组件逻辑复用的那些事儿
2020/05/21 Javascript
[48:54]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第二场 6.3
2018/06/04 DOTA
python获取豆瓣电影简介代码分享
2014/01/16 Python
从零学Python之引用和类属性的初步理解
2014/05/15 Python
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
python使用socket连接远程服务器的方法
2015/04/29 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
2016/06/29 Python
你真的了解Python的random模块吗?
2017/12/12 Python
Python面向对象之继承代码详解
2018/01/29 Python
使用numpy和PIL进行简单的图像处理方法
2018/07/02 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
2018/09/04 Python
浅谈python的深浅拷贝以及fromkeys的用法
2019/03/08 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
Django使用list对单个或者多个字段求values值实例
2020/03/31 Python
python多进程使用函数封装实例
2020/05/02 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
CSS3中设置3D变形的transform-style属性详解
2016/05/23 HTML / CSS
红色连衣裙精品店:Red Dress Boutique
2018/08/11 全球购物
土木工程毕业生自荐信
2013/09/21 职场文书
保送生自荐信范文
2013/10/06 职场文书
党员证明信
2015/06/19 职场文书
小学班长竞选稿
2015/11/20 职场文书
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android