我试图用Bootstrap 3词缀实现相同的功能,但没有成功。所以,不要使用Bootstrap词缀来创建自定义粘性导航。
在我的方案中,通过滚动达到特定像素偏移量后应该变为粘滞的导航。在到达点之前,导航是隐藏的。当它显示时,它从顶部滑动。当我向后滚动时,它会从屏幕滑到顶部。
HTML部分
添加任何内容进入格,我有一个标志,并在那里的主要导航。
<div id="menu-bar"></div>
CSS部分
我使用CSS3过渡,因为它们是well supported(除了IE < = 9)和它们的动画适合所期望的效果最大,方式优于jQuery的动画()。在达到偏移量后继续滚动以开始动画时,jQuery animate()效果会减慢。使用CSS3,不需要停止滚动以使动画流畅并且其效果仍然是即时的。
#menu-bar {
position: fixed;
top: -200px;
width: 100%;
transition: top 0.5s ease 0s;
-webkit-transition: top 0.5s ease 0s;
-moz-transition: top 0.5s ease 0s;
-o-transition: top 0.5s ease 0s;
}
JavaScript部分
我使用jQuery,也许你可以没有它,但它会比这个解决方案要复杂得多。无论如何,你都使用jQuery作为Bootstrap。
var $document = $(document),
$element = $('#menu-bar');
$document.scroll(function() {
if ($document.scrollTop() >= 850) {
$element.stop().css({
top: '0px'
});
} else {
$element.stop().css({
top: '-200px'
});
}
});
JSFiddle看到它在行动!我添加了一些样式,以便可以轻松看到粘性元素。
也许晚了,但我仍然有你的答案:) – TeeJay 2015-07-07 23:55:42