【问题标题】:How do I change the route as I scroll?滚动时如何更改路线?
【发布时间】:2021-07-06 11:37:10
【问题描述】:

我正在使用 fullpage.js 制作我的作品集,我想在每次滚动到下一个元素时添加一条路线。例如:当我打开页面时,我在该部分中获得了<Home /> 元素我想在滚动到第二个元素<About /> 放置路由器/#about 时放置路由器/#home,依此类推,因为我这样做?

const Fullpagescroll = () =>{
    return (
        <>
        <Header />
        <ReactFullpage
            scrollingSpeed = {1150}
            navigation
            render={() => {
                return (
                <>
                    <div className='section'>
                        <Home />
                    </div>
                    <div className='section'>
                        <About />
                    </div>
                    <div className='section'>
                        <Project />
                    </div>
                    <div className='section'>
                        <Contact />
                    </div>
                </>
                );
            }}
        />
        </>
    );
}

例子

                     <Router>
                        <div className='section' >
                            <Route path='/#home'>
                                <Home />
                            </Route>
                        </div>
                        <div className='section'>
                            <Route path='/#about'>
                                <About />
                            </Route>
                        </div>
                        <div className='section'>
                            <Route path='/#project'>
                                <Project />
                            </Route>
                        </div>
                        <div className='section'>
                            <Route path='/#contact'>
                                <Contact />
                            </Route>
                        </div>
                    </Router>

【问题讨论】:

  • 根据文档,recordHistory 默认为 true,但无论如何,请尝试在 scrollingSpeed 属性下方添加 recordHistory={true}
  • 这不起作用,因为我想在&lt;Home /&gt; 中创建该部分的路径,添加路径 localhost:333/#home,在这种情况下滚动到下一个部分&lt;About /&gt;我想把路径改成localhost:333/#about

标签: javascript reactjs fullpage.js


【解决方案1】:

只需使用anchors 选项,详细信息请参见the fullpage.js documentation

锚点:(默认 [])定义要在每个部分的 URL 上显示的锚点链接 (#example)。锚值应该是唯一的。阵列中锚点的位置将定义锚点应用于哪些部分。 (第二部分的第二个位置,依此类推)。也可以通过浏览器使用锚点向前和向后导航。此选项还允许用户为特定部分或幻灯片添加书签。当心!锚点不能与站点上的任何 ID 元素(或 IE 的 NAME 元素)具有相同的值。现在可以使用属性 data-anchor 直接在 HTML 结构中定义锚点,如下所述。

或者,您也可以在每个部分上使用属性data-anchor

您可以在most of the examples online 上看到这样的示例,例如this one 以及the ones provided on the github repository

【讨论】:

  • 谢谢,我对编程很陌生。但是我花了一堂课才学会好好阅读文档
猜你喜欢
  • 1970-01-01
  • 2017-05-26
  • 1970-01-01
  • 2021-07-08
  • 2017-12-26
  • 2021-10-19
  • 2021-12-15
  • 1970-01-01
相关资源
最近更新 更多