我正在使用NextJs。我想在我的页眉部分创建一个链接。这个链接应该通过滚动将用户带到同一页面上的TestimonialsSection。
<Link href={"#TestimonialsSection"}> <a className={styles.Designation}>Mentor</a> </Link>
这是我试过的代码,但没有成功。不过网址会更改。提前感谢
unhi4e5o1#
在普通HTML中,您可以这样做
<a href="#first-section">My first section</a> <a href="#second-section">My second section</a> <div id="first-section">SECTION 1</div> <main id="second-section">SECTION 2</main>
在NextJS中,你可以做类似的事情,不用锚标记来链接,而是使用Link组件。
Link
<Link href="#first-section">My first section</Link> <Link href="#second-section">My second section</Link> <div id="first-section">SECTION 1</div> <main id="second-section">SECTION 2</main>
这样就可以了。但是,如果您希望起始URL为www.my-site.com/#second-section,则需要将Link组件的scroll属性设置为false。例如:
www.my-site.com/#second-section
scroll
false
... <Link href="#second-section" scroll={false}>My second section</Link> ...
请确保您的section/div(即目标元素)正确设置了ID属性,而没有#,并且相应的锚链接将#作为IDname的前缀以下是NextJS的官方文档https://nextjs.org/docs/api-reference/next/link希望这能解决您的问题。
#
mbjcgjjk2#
如果它只是一个静态字符串,你应该像上面说的那样去掉大括号。如果您正在创建一个可重用组件,其中您需要从父组件中指定ID,请使用模板字符串并保留大括号。
<Link href={`#${props.id}`}> <a className={styles.Designation}>Mentor</a> </Link>
xwbd5t1u3#
尝试使用Link标记并在URL中添加#some-link,然后在Link标记href中添加href ='#some-link'www.google.com/#some-link
<Link href='#some-link'> // code section </Link>
3条答案
按热度按时间unhi4e5o1#
在普通HTML中,您可以这样做
在NextJS中,你可以做类似的事情,不用锚标记来链接,而是使用
Link
组件。这样就可以了。但是,如果您希望起始URL为
www.my-site.com/#second-section
,则需要将Link组件的scroll
属性设置为false
。例如:请确保您的section/div(即目标元素)正确设置了ID属性,而没有
#
,并且相应的锚链接将#
作为IDname的前缀以下是NextJS的官方文档https://nextjs.org/docs/api-reference/next/link
希望这能解决您的问题。
mbjcgjjk2#
如果它只是一个静态字符串,你应该像上面说的那样去掉大括号。
如果您正在创建一个可重用组件,其中您需要从父组件中指定ID,请使用模板字符串并保留大括号。
xwbd5t1u3#
尝试使用Link标记并在URL中添加#some-link,然后在Link标记href中添加href ='#some-link'
www.google.com/#some-link