转换附加导航栏 – CSS
我有一个固定的导航栏使用Twitter Bootstrap 3的affix()
。
使用导航栏一切正常。 我想在导航栏的外观中添加一个transition
。
当用户滚动页面时,导航栏立即显示。 我想给它制作动画。
尝试使用-webkit-transition: all 1s ease-in
但结果是导航栏的宽度。
这是FIDDLE 。
当用户向下滚动时,请帮助我设置动画。
要转换某些内容,请将其从一种状态移动到另一种状态。 因此,您要做的是更改.navigation元素的一个或多个属性。
您可以更改哪些属性?
您无法更改高度,宽度或不透明度,因为在转换之前和之后需要保持不变。 如果您希望转换涉及移动,那么您最好的选择是转换元素的位置。 让我们用“顶部”属性来做这件事。
转换后,您的导航需要将0
作为其最高值。 元素的高度为250px,所以让它从top: -250
开始top: -250
。 但是,如果我们这样做,菜单最初将被隐藏。 要解决这个问题,我们需要通过删除相对定位来忽略顶部值。
.navigation { background: #fff; /* position: relative; */ width: 100%; top: -250px; }
然后我们可以将其转换为0:
#nav.affix { position: fixed; top: 0; z-index: 1030; width: 100%; -webkit-transition: all 2s ease-in; transition: all 1s ease-in; }
结果:
http://jsfiddle.net/ShL4T/8/
参考: https : //developer.mozilla.org/en-US/docs/Web/Guide/CSS/Using_CSS_transitions
在我隐式地将position:static
添加到.navigation
之前,我无法使用.navigation
。