在vue-scroller中如何标记记录滚动位置
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在vue-scroller中如何标记记录滚动位置,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1501字,纯文字阅读大概需要3分钟。
内容图文
![在vue-scroller中如何标记记录滚动位置](/upload/InfoBanner/zyjiaocheng/288/9f2c2fc57dcb4fea9813877da6015c22.jpg)
问题描述:
列表页进入详情页,或者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 的使用
等下周发版的时候,我贴上链接,可以体验下效果
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
在vue.js中实现分页中单击页码更换页面内容
在vue2.0组件中如何实现传值、通信
webpack 4.0.0-beta.0版本新特性(详细教程)
利用SpringMVC解决vue跨域请求
Vue组件和Route的生命周期(详细教程)
在Vue2.0中实现用户权限控制
以上就是在vue-scroller中如何标记记录滚动位置的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的在vue-scroller中如何标记记录滚动位置全部内容,希望文章能够帮你解决在vue-scroller中如何标记记录滚动位置所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。