Angular 如何向下滚动到同一页面上的组件

Angular 如何向下滚动到同一页面上的组件,angular,Angular,我在同一页上有多个组件,每个组件的最小高度为100vh。顶部有一个导航栏。所以,我想在单击导航栏项目时向下滚动到一个特定的组件。怎么做?我尝试在包含所有这些组件的主组件中使用ViewPortScroller,但它不起作用 <app-navbar (currentCategorySelected)="scrollTo($event)" class="navbar"></app-navbar> <div class="

我在同一页上有多个组件,每个组件的最小高度为100vh。顶部有一个导航栏。所以,我想在单击导航栏项目时向下滚动到一个特定的组件。怎么做?我尝试在包含所有这些组件的主组件中使用ViewPortScroller,但它不起作用

<app-navbar (currentCategorySelected)="scrollTo($event)" class="navbar"></app-navbar>

<div class="mainContainer">
    <app-about-me id="about"></app-about-me>
    <app-skills #skills></app-skills>
    <app-experience-section></app-experience-section>
</div>

您可以像这样使用“scrollIntoView”方法:

HTML

<app-navbar (click)="scrollTo(#id)" class="navbar"></app-navbar>

<div class="mainContainer">
    <app-about-me id="about"></app-about-me>
    <app-skills #skills></app-skills>
    <app-experience-section></app-experience-section>
</div>

使用此方法,您需要为每个要滚动到的组件提供一个单独的元素,该元素带有单击事件处理程序。

您可以使用“scrollIntoView”方法,如下所示:

HTML

<app-navbar (click)="scrollTo(#id)" class="navbar"></app-navbar>

<div class="mainContainer">
    <app-about-me id="about"></app-about-me>
    <app-skills #skills></app-skills>
    <app-experience-section></app-experience-section>
</div>

使用此方法,您需要为每个要滚动到的组件提供一个单独的元素和一个单击事件处理程序。

这很有效。谢谢但你能告诉我为什么viewPortScroller不工作吗?这很有效。谢谢但你能告诉我为什么viewPortScroller不工作吗?
scrollTo(el: HTMLElement) {
    el.scrollIntoView();
}