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 Autocomplete 结合asp.net使用要点
Oct 29 Javascript
使用jquery实现select添加实现后台权限添加的效果
May 28 Javascript
javascript中节点的最近的相关节点访问方法
Mar 20 Javascript
关于jQuery中.attr()和.prop()的问题探讨
Sep 06 Javascript
jQuery制作仿Mac Lion OS滚动条效果
Feb 10 Javascript
vue2.0开发实践总结之入门篇
Dec 06 Javascript
jQuery与js实现颜色渐变的方法
Dec 30 Javascript
jquery实现限制textarea输入字数的方法
Sep 06 jQuery
Django与Vue语法的冲突问题完美解决方法
Dec 14 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
Nov 06 Javascript
不刷新网页就能链接新的js文件方法总结
Mar 01 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
Sep 10 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文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
基于php上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
使用PHP导出Redis数据到另一个Redis中的代码
2014/03/12 PHP
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
2014/04/24 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
2014/07/10 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
PhpStorm连接服务器并实现自动上传功能
2020/12/09 PHP
基于Jquery的开发个代阴影的对话框效果代码
2011/07/28 Javascript
B/S模式项目中常用的javascript汇总
2013/12/17 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
2015/03/14 Javascript
jquery动态导航插件dynamicNav用法实例分析
2015/09/06 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
2016/09/19 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
2016/10/21 Javascript
JS实现DIV高度自适应窗口示例
2017/02/16 Javascript
ajax前台后台跨域请求处理方式
2018/02/08 Javascript
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
2019/04/17 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
Vue源码分析之Vue实例初始化详解
2019/08/25 Javascript
JavaScript享元模式原理与用法实例详解
2020/03/09 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
Vue.js中使用Vuex实现组件数据共享案例
2020/07/31 Javascript
在树莓派2或树莓派B+上安装Python和OpenCV的教程
2015/03/30 Python
Python使用minidom读写xml的方法
2015/06/03 Python
英国最受欢迎的手表网站:Watch Shop
2016/10/21 全球购物
师范院校学生自荐信范文
2013/12/27 职场文书
绩效工资分配方案
2014/01/18 职场文书
合作协议书怎么写
2014/04/18 职场文书
村道德模范事迹材料
2014/08/28 职场文书
2014教师“四风问题”对照检查材料思想汇报
2014/09/16 职场文书
朋友圈早安励志语录!
2019/07/08 职场文书
毕业生自荐求职信书写的技巧
2019/08/26 职场文书
Python OpenCV快速入门教程
2021/04/17 Python
MongoDB数据库之添删改查
2022/04/26 MongoDB