Angular scrollIntoView()角度7不滚动

Angular scrollIntoView()角度7不滚动,angular,typescript,js-scrollintoview,Angular,Typescript,Js Scrollintoview,我试图在我的应用程序中实现从一个组件到另一个组件的滚动,但目前它只是跳转到该组件,而不是滚动 我尝试了以下方法: export class HomeComponent implements OnInit { scroll(el: HTMLElement) { el.scrollIntoView({ block: 'start', behavior: 'smooth', inline: 'nearest' }); } constructor() { } ngO

我试图在我的应用程序中实现从一个组件到另一个组件的滚动,但目前它只是跳转到该组件,而不是滚动

我尝试了以下方法:

export class HomeComponent implements OnInit {
  scroll(el: HTMLElement) {
      el.scrollIntoView({ block: 'start',  behavior: 'smooth', inline: 'nearest' });
  }

  constructor() {
  }

  ngOnInit() {
  }
}
这是我的模板:

<section class="bg-full bg-home">
  <div class="logo"></div>
  <a (click)="scroll(testPortfolio)" href="#portfolio" id="scroll-to-section">
    <img src="../../assets/arrow-scroll.svg" width="36">
  </a>
</section>
<app-about></app-about>
<app-portfolio-slider #testPortfolio></app-portfolio-slider>
<app-contact></app-contact>
或者,我也尝试过使用ViewChild,但这总是返回未定义的,因为我假设它尚未渲染


我需要做什么才能使滚动顺利进行?

所以我的假设是错误的。正如@arbghl在评论中提到的,作者只需要包装具有scrollIntoView方法的目标元素,并将该div用作目标元素。
希望能有所帮助。

我建议您将目标组件包装在一个HTML标记中,该标记将为您提供一个HTML元素,该元素上有scrollIntoView方法。下面的代码片段应该有用,谢谢。为了使您的解决方案起作用,我需要用标签包装我的解决方案。