我的网站上有一个导航栏,它应该在用户向下滚动页面时平滑地折叠和缩小。然而,不是平滑的过渡,导航栏只是消失了,取而代之的是一个更小的版本。页面上的其他元素也出现了同样的问题,比如下拉菜单。
下面是常规版本的css:
.opportunities-tab-customization-container[_ngcontent-gpm-c2] {
align-items: center;
background-color: white;
display: flex;
height: auto;
margin-bottom: 10px;
width: 100%;
}
下面是折叠版本的css:
.collapsed-opportunities-tab-customization-container[_ngcontent-gpm-c2] {
align-items: center;
background-color: white;
display: flex;
margin-bottom: 10px;
}
下面是动画和过渡效果的css:
.translate-y[_ngcontent-gpm-c2] {
-webkit-animation: translate-y 0.5s ease-out alternate;
-moz-animation: translate-y 0.5s ease-out alternate;
animation: translate-y 0.5s ease-out alternate;
}
我试过调整导航栏的CSS和动画的定时和缓动,但是我一直无法实现平滑的过渡,我期望导航栏平滑地折叠,下拉菜单在用户向下滚动页面时平滑地过渡。
.translate-y[_ngcontent-gpm-c2] {
-webkit-animation: translate-y 0.5s ease-out alternate;
-moz-animation: translate-y 0.5s ease-out alternate;
animation: translate-y 1.5s ease-out alternate;
height: 150px;
}
然而,实际上发生的是元素简单地消失和重新出现,没有任何平滑的动画。当我从顶部向下滚动时,“翻译文本”标题和水獭图像变得有点小,它下面的文本淡出。右侧的下拉菜单也是如此--这个想法是为了使翻译平滑,而不是“一个导航栏被另一个导航栏取代”。
有谁能提出一个解决这个问题的方法吗?我将非常感谢任何帮助或指导来解决这个问题。谢谢。
1条答案
按热度按时间cnjp1d6j1#
使用rxjs操作符很容易隐藏导航(我想你的nv有一个固定的60px的高度)
在网络上有很多例子,但是我们将使用rxkjs操作符fromEvent和pipeasync来订阅,以"Angular 的方式"来做
想象一个HTML像
无菌css
我们只需要定义scrollObs $
如果你不想藏得更小,看起来更近
参见stackblitz
现在,它只定义类折叠