我试图为我的网页设置一个粘性导航栏,并且遇到了我发现的问题。也许有人可以帮助我?
“粘性位置”的想法是使网站上的元素保持可见并保持可见。这些元素最初将处于其位置,然后在向下滚动网页时,它们的位置将跟随滚动。
Here's a link to what I have which also shows the navigation bar.
here's a link to the tutorial I tried to follow
这里有一些相关的CSS:
/* Navigation bar */
#navi {
height: 40px;
width: 961px;
background: #1e416f;
font-size: 14px;
color: white;
text-transform: uppercase;
margin: 0 0 20px 0;
}
这是一些相关的HTML:
<!-- NAVIGATION -->
<div id="navi">
<h1 class="logo"><a href="#">CAUL/CBUA</a></h1>
<ul id="primary-nav">
<li><a href="#">Directories</a></li>
<li><a href="#">Committees</a></li>
<li><a href="#">Resources</a></li>
<li><a href="#">About</a></li>
</ul>
<ul id="tools-nav">
<li class="login"><a href="#">Log In</a></li>
<li class="email icon"><a href="#">Email</a></li>
<li class="twitter icon"><a href="#">Twitter</a></li>
<li class="search icon"><a href="#">Search</a></li>
</ul>
</div>
我不打算发布我做了的内容,因为教程根本没有。我在该教程中看到的唯一更改的内容是 nav 我将其更改为 navi ,因为它是&#39;我的CSS中有什么。
或如果有人有任何其他类似的想法,我会对此持开放态度。
答案 0 :(得分:1)
jQuery Waypoints非常有用。
一旦到达页面顶部,您就可以使用导航栏。
$('#navi').waypoint('sticky');
和你的CSS
#navi .stuck { position:fixed; }
应该做的伎俩!
答案 1 :(得分:1)
jQuery解决方案,在类之间切换,CSS在您的网站上使用,几乎没有添加,这里是一个jsFiddle http://jsfiddle.net/mdesdev/AVUH4/
<强> HTML 强>
<div id="navi" class="default">
<h1 class="logo"><a href="#">CAUL/CBUA</a></h1>
<ul id="primary-nav">
<li><a href="#">Directories</a></li>
<li><a href="#">Committees</a></li>
<li><a href="#">Resources</a></li>
<li><a href="#">About</a></li>
</ul>
<ul id="tools-nav">
<li class="login"><a href="#">Log In</a></li>
<li class="email icon"><a href="#">Email</a></li>
<li class="twitter icon"><a href="#">Twitter</a></li>
<li class="search icon"><a href="#">Search</a></li>
</ul>
</div>
<强> CSS 强>
#navi {
height: 40px;
width: 961px;
background: #1e416f;
font-family: Verdana, Geneva, sans-serif;
font-size: 13px;
color: white;
text-transform: uppercase;
letter-spacing: 1px;
}
#navi a:hover {
background: white;
color: #1e416f;
}
#navi .logo {
margin: 0;
padding: 0;
float: left;
}
#navi .logo a {
float: left;
width: 56px;
height: 40px;
background: url(/imgs/navi/caul_white_nav.png) center no-repeat;
text-indent: -9999px;
}
#navi .logo a:hover {
background: url(/imgs/navi-hover/caul_blue_nav.png) center no-repeat;
background-color: white;
}
#primary-nav, #tools-nav {
list-style: none;
margin: 0;
padding: 0;
}
#primary-nav li, #primary-nav a, #tools-nav li, #tools-nav a {
float: left;
}
#primary-nav a, #tools-nav a {
color: white;
text-decoration: none;
padding: 0 10px;
border-right: 1px solid white;
line-height: 40px;
}
#tools-nav a:hover {
color: #1e416f;
}
#primary-nav li:first-child a, #tools-nav li:first-child a {
border-left: 1px solid white;
}
#tools-nav {
float: right;
}
#tools-nav .icon a {
text-indent: -9999px;
}
#tools-nav .email a {
background: url(/imgs/navi/mail.png) no-repeat scroll center center transparent;
width: 20px;
}
#tools-nav .email a:hover {
background: url(/imgs/navi-hover/hover_mail.png) no-repeat scroll center center transparent;
width: 20px;
}
#tools-nav .twitter a {
background: url(/imgs/navi/twitter.png) no-repeat scroll center center transparent;
width: 20px;
}
#tools-nav .twitter a:hover {
background: url(/imgs/navi-hover/hover-twitter.png) no-repeat scroll center center transparent;
width: 20px;
}
#tools-nav .search a {
background: url(/imgs/navi/search.png) no-repeat scroll center center transparent;
width: 20px;
}
#tools-nav .search a:hover {
background: url(/imgs/navi-hover/hover_search.png) no-repeat scroll center center transparent;
width: 20px;
}
.default {
margin: 0 0 20px 0;
}
.fixed {
position: fixed;
top: 0;
left: 50%;
margin-left: -480px;
}
<强>的jQuery 强>
$(function() {
var navi = $( '#navi' ),
naviOff = navi.offset();
$( window ).scroll(function() {
if($( this ).scrollTop() >= naviOff.top + navi.height() && navi.hasClass( 'default' )) {
navi.removeClass( 'default' ).addClass( 'fixed' ).fadeIn( 'fast' );
}
else if($( this ).scrollTop() <= naviOff.top && navi.hasClass( 'fixed' )) {
navi.removeClass( 'fixed' ).addClass( 'default' ).fadeIn( 'fast' );
}
});
});
答案 2 :(得分:0)
您需要添加以下内容:
#navi {
position: fixed;
top: 0px;
left: 0px;
}