粘性页眉在滚动+窗口大小



嗨,我遵循了一个代码审查片段,在我稳步构建的网站上实现了它。

我已经找到了如何让它粘在底部,向下滚动时粘在顶部。但当它显示在底部时,它并没有完全显示导航。HTML代码:

<div class="header">
<nav id="main-navigation">
<ul>
  <li><a href="/archive">Archive</a></li>
  <li><a href="/events">Events</a></li>
  <li><a href="/contact">Contact</a></li>
<ul>
</nav>
</header>

JQUERY脚本:

<script type="text/javascript">
var $window = $(window);
var nav = $('#main-navigation');
$window.scroll(function(){
if ($window.scrollTop() >= 300) {
   nav.addClass('fixed-header');
}
else {
   nav.removeClass('fixed-header');
}
});</script>

CSS片段:

header{position:fixed;bottom:0;z-index:999999;}
.fixed{
position: absolute;
bottom:0; left:0;
width: 100%;
z-index:900; }
.fixed-header {
position: fixed;
top:0px; left:0;
width: 100%; 
}
nav {
width:100%;
height:60px;
background: #292f36;
postion:fixed;
z-index:100;
bottom:0px;
}
nav ul { 
list-style-type: none;
margin: 0 auto;
padding-left:0;
text-align:right;
width: 960px; 
}
nav ul li { 
display: inline-block; 
line-height: 60px;
margin-left: 10px;
}
nav ul li a {
text-decoration: none; 
color: #a9abae;
}

示例测试站点:

示例

也许我必须为此打开一个新的stackexchange QA,但有人明白为什么我的窗口宽度大于我的部分宽度吗?我检查了一下,所有东西都是宽度:100%?但是,也许我不得不再次提出一个新的问题。

根据我在您的测试站点上看到的内容。您为.fixed标头声明了100%的宽度,这很好,因为它是一个固定元素,它忽略了父节点的宽度,并将大小调整为屏幕的100%。

然而,当您移动到absolute时,100%会在DOM树中查找具有显式大小的对象。由于您没有在任何父节点中声明一个,因此它只是自动调整Nav-ul内容的960大小。

header{
   position:fixed;
   bottom:0;
   z-index:999999;
   min-width:100%; //width or min-width would work here
 }

当您删除nav元素的"固定"状态时,这应该会给它一个显式的宽度值,因为它将回退到100%宽度固定的父级。

最新更新