发布于 2019-03-26 21:55:29
no-JS的方式
只有使用CSS才能做到这一点。一旦你开始滚动,这将会逐渐隐藏导航栏。
.exemple-toolbar {
position: sticky;
top: -200px;
padding-top: 200px;
height: 250px;
}
The onScroll way
在您的容器div上设置一个滚动监听器,并根据滚动方向向导航栏添加一个类。
scrollTop = 0;
hideNav = false;
onScroll(event) {
this.hideNav = this.scrollTop < event.target.scrollTop;
this.scrollTop = event.target.scrollTop;
}.container {
height: 100vh;
overflow-y: scroll;
overflow-x: hidden;
}
.nav {
position: fixed;
height: 50px;
display: flex;
}
.nav.hide-nav {
display: none; /* You can play on opacity for nice transitions*/
}<div class="container" (scroll)="onScroll($event)">
<div class="nav" [class.hide-nav]="hideNav">
<!-- Nav -->
</div>
<!--content-->
</div>
这也适用于HostListener,但组件的父节点必须是可滚动的(本例中不是这种情况)
发布于 2021-05-26 17:37:55
你可以看看这个,这是我找到的最好的例子-- https://netbasal.com/reactive-sticky-header-in-angular-12dbffb3f1d3
https://stackoverflow.com/questions/55358479
复制相似问题