单页面应用,页面跳转后,返回后,回到当前位置?
业务场景:用vue.js开发单页面应用,当滚动到页面a底部时,点击跳转到下一个页面b,再按返回,页面还是停留在页面a的底部,怎样做?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
业务场景:用vue.js开发单页面应用,当滚动到页面a底部时,点击跳转到下一个页面b,再按返回,页面还是停留在页面a的底部,怎样做?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(11)
没用过vue,不过一般router都会提供一个location改变时的hook,我想是不是可以在这绑定一个函数,里面将scroll重置到最顶上
试试vue-router中的saveScrollPosition
没用过vue。
可以在b页面跳转到a页面来重置,不要使用默认的返回。
scrollHeight 存下来, 进入的时候再去设置scrollHeight 。。
没用过vue,不过我觉得这种状况你应该不能用vue的返回方法,而是重新进入这个页面,这样页面会刷新,就重新回到顶部了。
销毁前获取活动位置
下次进来滚动到相应位置
点击返回的时清除之前的scrollHeight
刚巧做个这个,贴一下我已的一个方案。
整个应用是基于 VUE + WEBPACK
使用了VUE-ROUTER + VUEX
VUE-ROUTER 自身会有栅格钩子函数 data , activate ,deactivate
当A->B时,记录A中你的列表位置(列表数据是VUEX中的,“.forum-infinite-scroll” 用来定位你的列表)
当B->A时,移动到原位置
这里有几个地方需要注意,
一是 this.$nextTick
二是 $.refreshScroller()
缺一不可
其实你把b做成a的子组件就可以了。
这样子a不会进入销毁状态。
具体形如:
没找到答案呢