Angular 9 在每次更改时滚动到顶部

Posted

技术标签:

【中文标题】Angular 9 在每次更改时滚动到顶部【英文标题】:Angular 9 scroll to top on route every change 【发布时间】:2020-10-01 02:19:31 【问题描述】:

我正在做一个项目,其中有很多路线,每次单击链接转到特定路线时,页面都不会自动滚动到顶部,这既烦人又不好。请问有谁知道如何解决这个问题?

【问题讨论】:

这能回答你的问题吗? Angular 2 Scroll to top on Route Change 不抱歉,我已经尝试过了。 我想我找到了一个很好的答案来回答这个问题,这是正确的here 引用该响应,“从 Angular6.1 开始,我们还可以在急切加载的模块上使用 scrollPositionRestoration: 'enabled' ,它将应用于所有路由” 是的,这也可以。 【参考方案1】:

在额外选项的路由模块中添加如下配置:

const routes: Routes = [ ... ];

@NgModule(
  imports: [RouterModule.forRoot(routes, 
    scrollPositionRestoration: 'enabled'
  )],
  exports: [RouterModule]
)
export class AppRoutingModule  

为了您的兴趣,选项scrollPositionRestoration 可以是top(每次导航更改时都转到顶部)或enabled(与顶部类似,但向后退时会恢复到最后一个位置)。

更多信息:https://angular.io/api/router/ExtraOptions

【讨论】:

不好意思,scrollPositionRestoration不太懂,怎么滚动到顶部? 如何禁用平滑滚动并使其立即卡到顶部? @Ibrahim 你找到解决方案了吗? @Jul 不。告诉我你是否这样做。 我遇到了同样的问题(禁用平滑滚动),我不得不禁用全局 css 规则 scroll-behavior: smooth; 并仅在我想要该行为的页面中应用它,而不是在 html 标签内

以上是关于Angular 9 在每次更改时滚动到顶部的主要内容,如果未能解决你的问题,请参考以下文章

在路线更改和新组件加载不起作用后以角度滚动到顶部

更改路线不会在新页面中滚动到顶部

Angular 7在子路由更改上禁用滚动到顶部

在 angular2 的新页面中,路线更改视图不会滚动到顶部

Angular2 Meteor,实现无限滚动的问题(滚动重置到顶部)

防止在Angular中的单个router.navigate调用上滚动到顶部