我有一个导航栏,在加载时从页面顶部开始大约200px。当我向下滚动时,我希望导航栏能够“粘贴”到页面的顶部,并在滚动浏览其余内容时可见。 我可以让导航栏从顶部保持200px的位置,它忽略了我向前拉的内容并将其全部拉到左侧。我需要确保导航栏保持可见,并且布局/样式在整个过程中都是相同的。
下面是我的jsfiddle,显示我遇到的问题
<!-- Begin Logo / Search -->
<header class="masthead">
<div class="row">
<div class="span6">
<div class="logo pull-left">
<h1><a href="/">name</a></h1>
</div>
</div>
<div class="span6">
<div class="pull-right hidden-phone">
<form class="search" action="/search" id="site-search">
<input type="hidden" name="records" value="6">
<div class="input-append">
<input type="text" name="q" class="search_box" placeholder="Search" value="" autocomplete="off" />
<button class="btn" type="submit"><i class="icon-search"></i></button>
</div>
</form>
</div>
</div>
</div>
</header>
<!-- Begin Navbar -->
<div>
<div class="navbar navbar-static">
<div class="navbar-inner" id="mastnav">
<div class="container">
<!-- .btn-navbar is used as the toggle for collapsed navbar content -->
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<div class="nav-collapse collapse">
<ul class="nav"><li><a href="#">nav</a> </li></ul>
<ul class="nav pull-right">
<li>
<a href="/cart"><i class="icon-shopping-cart"></i> <span id="cart-count">1</span></a>
</li>
</ul>
</div>
</div>
</div>
</div><!-- /.navbar -->
</div>
答案 0 :(得分:11)
导航变为affix
后,它不再遵循正常的导航栏CSS样式。你可以给外部DIV容器一个id,然后把它设置为`affix'元素。使用CSS确保它保持100%宽度。
#nav.affix {
position: fixed;
top: 0;
width: 100%
}
相关:
Affix Bootstrap flickers after affix-bottom reached and scrolling back top
答案 1 :(得分:2)
以下是修改过的jsfiddle,可以完成你想要的任务:
更新:对不起!粘贴错误的jsfiddle!当我播下反对票时意识到了!我会再做一次,稍后更新
更新:这是:
作为额外注释,您可以使用data-spy="affix"
和data-offset-top=""
在html中声明词缀,因此不需要额外的内联脚本
答案 2 :(得分:2)
<script type="text/javascript">
$(document).ready(function(e) {
$(window).scroll(function () {
if ($(window).scrollTop() > $('.navbar').offset().top) {
$('.navbar').addClass('navbar-fixed-top');
$('.navbar').removeClass('navbar-static-top');
} else {
$('.navbar').removeClass('navbar-fixed-top');
$('.navbar').addClass('navbar-static-top');
}
});
});
</script>
答案 3 :(得分:-2)
您需要将附加条件附加到导航栏的外部容器,我已对其进行了一些更改...
这个Js没有变化,但是html结构: -
$('#mastnav').affix({
offset: {
top: 0
}
});