为什么滚动在我的 Click Listener 中有效,但在 AfterViewInit 中无效?
Why does scrollTo work in my ClickListener but not in AfterViewInit?
我想知道为什么以下方法有效:
scroll(){
window.scrollTo(0, this.ypos); // works perfectly fine
}
在我的 html.component 中:
<button (click)="scroll()">Scroll</button>
但以下方法不起作用:
ngAfterViewInit(){
console.log(this.ypos); // is perfectly defined
window.scrollTo(0, this.ypos); // won't work
}
有谁知道为什么它不起作用? window.scrollTo()
也不适用于 ngOnInit
但为什么呢?
不使用 window 对象,而是使用 angular Viewportscroller 服务滚动到指定位置。
component.ts
import { ViewportScroller } from '@angular/common';
constructor(private viewportScroller: ViewportScroller) {}
ngAfterViewInit(){
this.viewportScroller.scrollToPosition([0,this.ypos]);
}
我想知道为什么以下方法有效:
scroll(){
window.scrollTo(0, this.ypos); // works perfectly fine
}
在我的 html.component 中:
<button (click)="scroll()">Scroll</button>
但以下方法不起作用:
ngAfterViewInit(){
console.log(this.ypos); // is perfectly defined
window.scrollTo(0, this.ypos); // won't work
}
有谁知道为什么它不起作用? window.scrollTo()
也不适用于 ngOnInit
但为什么呢?
不使用 window 对象,而是使用 angular Viewportscroller 服务滚动到指定位置。
component.ts
import { ViewportScroller } from '@angular/common';
constructor(private viewportScroller: ViewportScroller) {}
ngAfterViewInit(){
this.viewportScroller.scrollToPosition([0,this.ypos]);
}