我想使用角度路由器跳转/滚动到某个片段(哈希)。该网址正确生成为/#section5
,但点击时没有任何结果。
经过大量搜索,我发现很多人(e.g.)有同样的问题,有一些解决方法,但没有适当的解决方法。我希望这是一个基本的核心功能。
以下代码不起作用:
<!-- Link -->
<a routerLink="/" fragment="section5" routerLinkActive="active">Section 5</a>
<!-- Target -->
<div id="section5">Section 5 here</div>
有什么想法吗?
答案 0 :(得分:0)
您可以尝试scrollIntoView
,在组件的构造函数
router.events.subscribe(event => {
if (event instanceof NavigationEnd) {
const tree = router.parseUrl(router.url);
if (tree.fragment) {
const element = document.querySelector("#" + tree.fragment);
if (element) { element.scrollIntoView(true); }
}
}
});