【发布时间】:2021-03-08 10:54:04
【问题描述】:
我确信这将是一个非常直接的答案,但我终其一生都无法弄清楚如何让我的 Gatsby/React 网站在没有滚动条的情况下从新页面的顶部开始单击内部链接时的过渡效果。
示例: 在我的主页上,我滚动到底部,然后单击一个链接将我带到“关于我”页面。 About Me 页面加载时浏览器滚动位置仍位于页面底部,然后窗口滚动到页面顶部。这只需要几毫秒,但是当我点击一个链接时,我想从页面顶部开始,没有任何过渡。
链接都是标准的 Gatsby 链接:
<Link className="" to="/aboutme/">
About Me
</Link>
谢谢!
编辑
在我的布局包装器中添加,并添加了 useScrollRestoration 钩子:
import React from 'react'
import PropTypes from 'prop-types'
import useScrollRestoration from 'gatsby'
import NavBar from './NavBar/NavBar'
import Footer from './Footer/Footer'
import './layout.scss'
const Layout = ({ children }) => {
const aboutMeScrollRestoration = useScrollRestoration(`page-component-main`)
return (
<>
<NavBar />
<main className="bumpdown" {...aboutMeScrollRestoration}>
{children}
</main>
<Footer />
</>
)
}
Layout.propTypes = {
children: PropTypes.node.isRequired,
}
export default Layout
【问题讨论】: