【发布时间】:2017-11-06 21:11:10
【问题描述】:
在 Angular 4 中,当路由器更改时,页面不会滚动到顶部。
我的解决方案是用#top 放置一个 div,在 typescript 中我使用 ViewChild 来像 scrollIntoView 一样
<div #top></div>
import { ViewChild, ElementRef } from '@angular/core';
@ViewChild('top') top: ElementRef;
当启动和加载我需要的所有内容时,我会调用
this.top.nativeElement.scrollIntoView();
这适用于 PC,但在移动设备中,清晰度标题隐藏 (<clr-header>),当我用移动设备滚动顶部时,滚动标题再次显示,但给用户带来不好的体验,我希望每次都显示标题。
请记住,标头位于根目录上,并且所有嵌套路由都在“router-outlet”内,因此我在嵌套路由中滚动顶部的解决方案不适用于根目录。
我尝试在 root 中使用此命令,但不起作用,“滚动顶部”仅适用于嵌套路由。
我已经尝试过以下命令:
window.scrollTo(0, 0) 无效
document.body.scrollTop = 0 无效
this.document.body.scrollTop = 0(使用 Angular DOCUMENT 模块)不起作用
还有很多其他人......有人可以帮忙吗?
【问题讨论】:
标签: html angular scroll scrolltop clarity