react跨页面实现锚点的跳转

591 阅读1分钟

需求

在h5页面中,需要从一个页面跳转到另外一个页面的指定区域。

实现方法

  • 采用链接锚点的方法,比如https://a/b/test#top3;

这种方法的问题比较多,采用这种方法之后发现,在iPhone上面是可以正常锚点跳转的,但是在其他的很多机型上面不能跳转到指定区域;(失败)

具体为什么不能通过链接锚点跳转还不明确。。。。。(还处于懵逼中。。。)

  • 采用DOM元素查询,然后使用scrollToView方法;

链接地址中加入参数来判断是否需要跳转,比如https://a/b/test?top3=1;

然后在渲染页面的时候查询URL参数中是否需要链接的跳转,如果是,采用scrollToView方法。(成功)

 if (queryParams('top3') === '1') {
    if (document.querySelector('#top3')) {
        document.querySelector('#top3')?.scrollIntoView(true);
    }
}

scrollIntoView方法的用法:

developer.mozilla.org/zh-CN/docs/…

image.png