NextJS: 如何在点击链接,到达 section 的时候,往上滚动一定数值的像素?

Ric Li C Ric Li C 提出于 2024-03-14 13:32 3536 浏览

我现在在写的一个 NextJS project,里面有一个 navigation bar,通过点击对应的链接,会进入对应的页面。

不过有几个链接是到达页面内的 section,由于我的 navigation bar 是固定在页面上方的,如果直接到达 section,该 section 的最上方的部分会被固定的 navigation bar 挡住,所以我希望到达 section 之后,还能再往上滚动 100-200 个像素, 这样才能完整显示 section 内容。

我使用了 `

const scrollSection = useRef<HTMLElement | null>(null)

const handleNavLinkClick = () => {
	if (scrollSection.current) {
		const scrollOptions: ScrollIntoViewOptions = {
			behavior: 'smooth',
			block: 'start',
			inline: 'nearest',
		}
		scrollSection.current.scrollIntoView(scrollOptions)
		window.scrollBy(0, -300)
	}
}        。。。

< NavLink href="/page1#section1" onClick={handleNavLinkClick}>Section name< /NavLink> 。。。

    但似乎没有效果。

最佳答案

2024-11-20 09:57

介于一直没有人回答出这个问题,我在此关闭问题,如果后续有人能回答出来,我可以新建一个提问,把分数给他。

Ric Li C

采纳率 19% · 回答于 2024-11-20 09:57

其它 1 个回答

Yiming 2024-03-16 22:08

写回答

你需要登录后才可以回答问题,登录