经常会有访问时进入详情后,再返回列表的情况。
如果整体路由地址相同,返回倒没什么问题。但是如果不同就需要手工记录,返回读取再定位。
- 在路由跳转之前编写方法
beforeRouteLeave(to, from, next) {
let className = document.getElementsByClassName('el-main')
//兼容性记录高度
var scrollTop = className[0].pageYOffset || className[0].scrollTop || className[0].scrollTop
sessionStorge.setItem('POSITION', scrollTop)
next()
},
- 回来时获取用户所浏览的位置
返回该页面时,重新获取这个位置,并且通过DOM的scrollTop滚动到指定位置
let className = document.getElementsByClassName('el-main')
this.$nextTick(() => {
var pos = sessionStorge.getItem('POSITION')
className[0].scrollTop = pos
})
- 注意sessionStorge,该方法仅在此次页面会话中有效。关闭后,下次再进来及无效
近期评论