在我的Angular4应用程序中,当我向下滚动某个列表并单击列表项以查看另一个路径上的详细信息时,需要向上滚动以转到页面顶部。
我找到了一些使用JQuery将滚动设置为顶部的答案。但是可以使用CSS(SASS可能只)将滚动设置为顶部吗?
答案 0 :(得分:1)
试试这个,没有任何CSS。在您的应用程序组件(引导程序)中订阅路由器并检查事件是NavigationEnd的实例然后scoll窗口到顶部
import {Component, ElementRef, Inject} from '@angular/core';
import {NavigationEnd, Router} from '@angular/router';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
elementRef: ElementRef;
constructor(@Inject(ElementRef) elementRef: ElementRef,
private router: Router) {
this.elementRef = elementRef;
router.events.subscribe((myEvent) => {
if (myEvent instanceof NavigationEnd) {
window.scrollTo(0, 0);
}
});
}
}
答案 1 :(得分:0)
以下是仅使用基于CSS的平滑滚动的快速示例。这是另一个SO thread,答案更多。
希望这有帮助。
html {
scroll-behavior: smooth
}
a {
display: block;
background: #fff;
padding: 4px;
}
div {
height: 1000px;
width: 200px;
padding: 4px;
}
#red {
background: red;
}
#blue {
background: blue;
}
#green {
background: green;
}
#yellow {
background: yellow;
}

<a name="top"></a>
<a href="#red">Red</a>
<a href="#blue">Blue</a>
<a href="#green">Green</a>
<a href="#yellow">Yellow</a>
<div id="red"><a href="#top">Top</a></div>
<div id="blue"><a href="#top">Top</a></div>
<div id="green"><a href="#top">Top</a></div>
<div id="yellow"><a href="#top">Top</a></div>
&#13;