粘性标题onscroll + window-size

时间:2015-02-08 16:31:19

标签: html5 css3 header sticky-footer

您好我按照代码审核片段在我的网站上实施,我正在稳步发展。

我已经找到了如何使它粘在底部,并向下滚动它粘在顶部。 但是当它显示在底部时,它不会完全显示导航。 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:

<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 SNIPPET:

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;
}

示例TESTSITE:

example

也许我必须为此打开一个新的stackexchange QA,但是有人看到为什么我的窗口宽度比我的节宽度大吗?我检查了一切都是宽度:100%?但也许我必须为此开一个新问题。

1 个答案:

答案 0 :(得分:0)

从我在测试网站上看到的内容。你说明.fixed-header的宽度是100%,这很好,因为它是一个固定的元素,它忽略了父节点的宽度,并调整到100%的屏幕。

但是,当您移动到绝对值时,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%宽度的固定父元素。