美文网首页
路由跳转后跳转回来保留滚动条位置

路由跳转后跳转回来保留滚动条位置

作者: 禁止脸黑 | 来源:发表于2021-05-26 21:44 被阅读0次

移动端页面H5,在列表页,点击跳到详情页,再按浏览器的返回键,回到列表页,需要保持滚动条原位置。

过程:
1.一开始我还以为和PC端一样,因为之前有过经验,React需要依赖第三方插件,可以搜一些keep-alive的插件,比如react-router-cache-route,react-live-route,这种需要webpack配置进去或者hack路由组件,其实原理就是用css的隐藏dom来代替模拟路由的卸载,css的dom隐藏,不会卸载销毁组件,也不会销毁组件中的state,还可以保留滚动条位置

  1. 移动端我一开始以为也需要这样,后来发现如果移动端跳转的时候用window.open(xxxxx,"_self"),这样子跳到详情页,然后按浏览器返回键,能自动保留滚动条位置,自动keep-alive了,就一开始用的是history.push没能成功保留,用window.open(xxxxx,"_self")反而能在浏览器里缓存住,

  2. window.open(xxxxx,"_self") 实现的效果在PC端模拟的移动设备上无效,在移动真机上有效

  3. a标签的href 也有以上效果

原理: 移动端浏览器有 往返缓存功能,现在的PC端chrome是移除了这个功能的,详见大佬文章 ,很详细https://github.com/LeuisKen/leuisken.github.io/issues/6

如果想禁用往返缓存功能,则


image.png

相关文章

  • 路由跳转后跳转回来保留滚动条位置

    移动端页面H5,在列表页,点击跳到详情页,再按浏览器的返回键,回到列表页,需要保持滚动条原位置。 过程:1.一开始...

  • vue路由跳转不回到顶部的问题

    路由跳转后页面滚动条依旧在上一个路由的位置。每次进入路由我需要置顶显示,方案如下。 a. main.js中添加如...

  • 滚动条恢复行为

    问题 Vue路由跳转,目标页面会继承起始页面的滚动条的位置。 history.scrollRestoration ...

  • vue-router路由跳转默认回到顶部

    背景 使用router-view跳转页面时,每次跳转,页面都定位到当前看的位置 思路 路由跳转后添加回滚到顶部操作...

  • angular路由传递参数

    路由配置 跳转前页面 跳转后页面

  • 微信小程序的周期解析

    微信小程序中的路由跳转方式(传参)通过navigateTo({})来进行页面的跳转 注意:保留当前页面,跳转到应用...

  • 滚动条滚动到顶部

    react 路由在跳转时,上一个路由地址的滚动条距离会带到下一个路由,所以很多场景下,当跳转到下一个路由时需要滚动...

  • 路由跳转(非命名路由)

    单纯跳转: 路由传值跳转: 路由传值返回跳转:

  • 常用api

    路由跳转方法 wx.navigateTo 用于保留当前页面、跳转到应用内的某个页面,使用 wx.navigateB...

  • 项目中 进度条组件的封装

    很多项目中需要在跳转路由时 页面顶部出现滚动条动画 ,当路由跳转成功后进度条消失 ,这个功能还是挺多见的,所以在简...

网友评论

      本文标题:路由跳转后跳转回来保留滚动条位置

      本文链接:https://www.haomeiwen.com/subject/ugslsltx.html