我希望通过单击滚动到页面的不同部分,但不希望地址栏中的URL更新。
例如,我的页面上有一个about
部分,ID为about:
<div id='about'>
通过单击页面上的链接,我想滚动到此部分。我可以使用<Link>
组件和router
来完成此操作,但是如果同时使用这两个组件,我无法在不更新URL的情况下完成此操作。
例如,使用router
,我将具有:
router.replace(`/#about`);
这工作正常,除了URL被更新为myurl.com/#about
,而我想保持URL为myurl.com
。
我尝试使用第二个as
参数来设置URL,例如:
router.replace(`/#about`, '/');
然而,这恰恰打破了这种联系。
有人知道如何做到这一点 * 而不 * 更新网址?我没有找到任何例子,也没有什么有用的文档。
感谢所有能帮忙的人!
2条答案
按热度按时间2w3kk1z51#
您可以使用next自己的“Link”组件,只需添加“href”,指示屏幕应该滚动到哪个ID。
所有的样式都放在'a'标签中,所以如果你有一个项目列表,它不会生成错误。
例如,在导航栏中输入:
在这一节中,你要写:
如果你使用Styled-components,看看这个例子中的样式,因为你可能会看到一个关于'Link'样式的错误,因为他不能有孩子,所以只要把样式放在'a':
lf5gs5x22#
你可以使用这个函数,它获取HTML元素的id,通过点击一个按钮来调用这个函数。