美文网首页
React-router锚点跳转的解决方案

React-router锚点跳转的解决方案

作者: 思了个麦 | 来源:发表于2017-03-07 19:18 被阅读0次

本文记录了使用react的时候想要实现锚点跳转的解决方案。

传统解决方案

<a href="#scroll">
    <button className="button">
        <i className="text">跳转</i>
    </button>
</a>
<div>
    <a name="scroll"></a>
    <p>跳到这里</p>
</div>

用这种传统的方式,如果是基于browserHistory,路径上加了hash值,但是并不会跳转到想要的锚点位置。

localhost:3000/demo#scroll

如果是基于hashHistory,虽然会跳转到想要的锚点位置,但是路径改变了。

localhost:3000/#/demo
=>
localhost:3000/#/scroll

基于browserHistory的解决方案

solugebefola提出的解决方案

scrollToAnchor() {
    let anchorName = this.props.location.hash;
    if (anchorName) {
        anchorName = anchorName.replace("#","");
        let anchorElement = document.getElementById(anchorName);
        if(anchorElement) { anchorElement.scrollIntoView(); }
    }
}

但是如果基于hashHistory的,就不能通过hash值来判断

基于hashHistory的解决方案

不能用hash值,那就只能通过query的方式来实现啦~

scrollToAnchor() {
    let anchorName = t.props.location.query.anchorName;
    if (anchorName) {
        let anchorElement = document.getElementById(anchorName);
        if(anchorElement) { anchorElement.scrollIntoView(); }
    }
}

Support

scrollIntoView

相关文章

  • React-router锚点跳转的解决方案

    本文记录了使用react的时候想要实现锚点跳转的解决方案。 传统解决方案 用这种传统的方式,如果是基于browse...

  • react-router 实现分析

    react-router 模式概览 hash (地址栏 # 做锚点,监听锚点后面地址的改变) history (...

  • HTML锚点定位的一些感受

    基本语法 创建锚点 创建跳转连接 其中href 填写锚点的id 存在问题 一般我们的锚点跳转会直接将锚点置于视窗的...

  • 锚点跳转

    1.锚点跳转 可使用scrollIntoView()方法将调用它的元素滚动到浏览器窗口的可见区域 2.语法 ele...

  • JS在页面上快速定位(锚点跳转问题)

    1. 锚点跳转简介 锚点其实就是可以让页面定位到某个位置上的点。在高度较高的页面中经常见到。锚点跳转有两种形式: ...

  • React如何实现锚点滚动

    解决方案描述 实现锚点滚动, 不要用 标签, 因为会触发路由跳转 可以使用H5提供的API scrollToAnc...

  • href之锚点跳转

    求稳 href之锚点跳转 锚点用 标签,在href属性中写入DIV的id。 标签包裹,href指向要跳转的位置 跳...

  • vue 锚点

    在某些场景中,我们通常使用锚点,进行定位,跳转我们需要的页面 方法一a 标签的锚点跳转 如果在同一页面跳转,该方法...

  • scrollIntoView

    // 锚点跳转 by ID export function ScrollToAnchor(anchorName) ...

  • PHP从入门到精通,010第二章HTML-HTML的核心标记之锚

    二、HTML的核心标记 (十)、锚点链接 说明:可以在当前页面中进行跳转,或者可以跨页面跳转。 锚点链接需要两部分...

网友评论

      本文标题:React-router锚点跳转的解决方案

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