如果路由器链接已经在该路线上,则它会滚动到顶部

问题描述

假设我在我的主页底部并点击我的徽标,现在因为徽标将我路由到我的主页和我已经在我的主页。它应该将我滚动到页面顶部。我该如何实施。

主页组件 HTML

<a routerLink="">
  <img src="../assets/logo.png" alt="" />
</a>

应用路由模块

  {
    path: '',component: HomeComponent,},

解决方法

滚动到顶部是,如果你有一个“正常”的页面,基本上完成:

window.scrollTo(0,0);

但是您也必须认识到路由事件发生了。因此,请将此代码放入您的 ngOnInit()

this.router.events.subscribe((event: Event) => {
    if (event instanceof NavigationEnd) {
        window.scrollTo(0,0);
    }
}