首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向下滚动时自动隐藏角度材质工具栏(顶部导航栏)

问向下滚动时自动隐藏角度材质工具栏(顶部导航栏)
EN

Stack Overflow用户
提问于 2019-03-26 21:33:37
回答 2查看 5.6K关注 0票数 5

我目前有一个使用标准工具栏作为顶部导航的Angular应用程序。

​

现在,我希望导航栏可以在用户向下滚动时与用户一起向上滚动,并在向上滚动时重新出现。

我尝试过使用window.pageYOffset,但是正如前面提到的here,这个值总是返回0。

我已经为我的导航栏here设置了Stackblitz。

EN

回答 2

Stack Overflow用户

发布于 2019-03-26 21:55:29

no-JS的方式

只有使用CSS才能做到这一点。一旦你开始滚动,这将会逐渐隐藏导航栏。

​

代码语言:javascript
复制
.exemple-toolbar {
  position: sticky;
  top: -200px;
  padding-top: 200px;
  height: 250px;
}

​

The onScroll way

在您的容器div上设置一个滚动监听器,并根据滚动方向向导航栏添加一个类。

​

代码语言:javascript
复制
scrollTop = 0;
hideNav = false;

onScroll(event) {
  this.hideNav = this.scrollTop < event.target.scrollTop;
  this.scrollTop = event.target.scrollTop;
}
代码语言:javascript
复制
.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*/
}
代码语言:javascript
复制
<div class="container" (scroll)="onScroll($event)">

  <div class="nav" [class.hide-nav]="hideNav">
     <!-- Nav -->
  </div>

<!--content-->

</div>

​

这也适用于HostListener,但组件的父节点必须是可滚动的(本例中不是这种情况)

票数 3
EN

Stack Overflow用户

发布于 2021-05-26 17:37:55

你可以看看这个,这是我找到的最好的例子-- https://netbasal.com/reactive-sticky-header-in-angular-12dbffb3f1d3

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55358479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档