Angular 2中的浏览器样式滚动行为

Angular 2中的浏览器样式滚动行为,angular,custom-scrolling,Angular,Custom Scrolling,在React中有一个东西叫做React路由器滚动:。它使React应用程序页面像普通网站一样滚动。因此,它会滚动到每个新页面(路径)的顶部,并保留过去页面的滚动位置;当您单击后退按钮时,它会记住您在该页面上滚动到的位置 我在安格拉尔找类似的东西。我搜索了一下,没有找到类似的东西。应该在某处。订阅路线更改 您可以订阅路由事件,当用户导航到新路由时,您可以将document.body.scrollTop设置为0。确保将其包含在根级组件中,该组件将为任何请求的路由加载 组成部分 我创建了一个模块,您可

在React中有一个东西叫做React路由器滚动:。它使React应用程序页面像普通网站一样滚动。因此,它会滚动到每个新页面(路径)的顶部,并保留过去页面的滚动位置;当您单击后退按钮时,它会记住您在该页面上滚动到的位置

我在安格拉尔找类似的东西。我搜索了一下,没有找到类似的东西。应该在某处。

订阅路线更改 您可以订阅路由事件,当用户导航到新路由时,您可以将
document.body.scrollTop
设置为0。确保将其包含在根级组件中,该组件将为任何请求的路由加载

组成部分
我创建了一个模块,您可以这样使用:

1-

2-转到app.module(在其中导入所有根模块)

3-将ScrollStoreModule添加到应用程序模块

@NgModule({
  bootstrap: [ AppComponent ],
  imports: [ 
    ScrollStoreModule, // put it here 
    BrowserModule,
    FormsModule,
    HttpModule 
    .. rest of your modules ....
  ]
})

export class AppModule { 
...
就这样

身份证的作用是:

在更改路由之前保存路由名称,当您返回时,如果会话存储中存在保存的路由,它将滚动到该位置,否则将滚动到页面顶部


请随意。

我现在已经准备好了类似的东西。它适用于新页面,但不能解决记住页面位置以便在历史记录中导航的问题。
npm install scrollstore
import { ScrollStoreModule } from 'scrollStore';
@NgModule({
  bootstrap: [ AppComponent ],
  imports: [ 
    ScrollStoreModule, // put it here 
    BrowserModule,
    FormsModule,
    HttpModule 
    .. rest of your modules ....
  ]
})

export class AppModule { 
...