1
codehz 2022-06-28 01:08:07 +08:00 via Android
https://www.zhangxinxu.com/wordpress/2022/05/history-scrollrestoration/
(不过恢复失败主要原因是你内容加载太慢,导致尝试恢复的时候你内容高度还不够滚动位置 |
2
codehz 2022-06-28 01:13:56 +08:00 via Android
啊,没注意是 spa ,spa 按照不同实现,如果是保留元素的基本不会出滚动的问题,选择重建元素的,那肯定跑开头去(所以需要自己记录,可以放 history.push 的时候记录)
|
4
zhuweiyou 2022-06-28 07:03:43 +08:00
一般是出现在列表跳到详情 再返回到列表的场景
1. keep-alive + 手动记录位置, 但上拉加载更多的场景 数据也得记下来. 2.手动 history push 一条记录, 然后详情和列表放在同一个 page 内, 用显示 /隐藏控制. 这样返回滚动位置还在. |
5
oyp OP @codehz #2 重建元素,指的是原页面 DOM 改变吗,可是我只是用了显示和隐藏,并没有改变页面内容,滚动条还是会变化,而且滚到快到底部时,切换页面再回去,发现直接就到底部了,这是什么问题
|
7
Tidusy 2022-06-28 10:03:06 +08:00
我遇到过是切换动画导致的,你可以试试去掉动画
|
14
br_wang 2022-06-28 10:20:22 +08:00
@oyp 也可以路由里记录下,返回时加个滚动到目标位置的逻辑,可以看到 vue-router 相关功能的实现,https://github.com/vuejs/router/blob/main/src/scrollBehavior.ts
|
17
oyp OP |
18
hgaogao 2022-06-29 08:47:03 +08:00 via Android
我也碰到了,op 最终用了什么解决方案
|