在页面切换时,浏览器会记住上一个页面的滚动位置。
两种解决办法:
- 在页面切换前,将滚动位置恢复到顶部。
import { Router, NavigationStart } from '@angular/router';
// 组件中:
constructor(private router: Router) {}
this.router.events.subscribe((event) => {
if (event instanceof NavigationStart) {
window.scrollTo(0, 0);
}
});
- 在目标页面初始化时,将滚动位置恢复到顶部。
// 目标页:
ngOnInit() {
window.scrollTo(0, 0);
}

文章介绍了在Angular应用中处理页面切换时浏览器记住滚动位置的两个方法:一是通过监听Router事件,在NavigationStart时设置滚动位置到顶部;二是直接在目标页面的ngOnInit生命周期钩子中调用window.scrollTo(0,0)来重置滚动位置。
99

被折叠的 条评论
为什么被折叠?



