如何在导航栏上方标题?

时间:2013-04-28 15:11:28

标签: jquery html css navigation fixed

我正在尝试创建一个带有标题的导航栏。我希望它是这样导航栏一旦到达屏幕顶部就会粘住(我自己已经解决了)但是它上面的任何东西都不会粘住(将正常滚动屏幕)。我做什么的非常好的例子Happy Cog。转到那里向下滚动,直到标题消失,但导航栏保持可见,并显示连接到浏览器窗口的顶部。这就是我想要的:标题放在导航栏上方并在滚动时消失但导航栏停留在浏览器的顶部。我想确保它像他们一样顺畅地滚动和运行 - 没有跳跃或跳到窗口的顶部。如何将内容放在导航栏上方,并在导航菜单出现时将其放在哪里?

我真的很感激你的任何帮助!非常感谢!

我的HTML:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Testing</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.1/jquery-ui.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="script.js"></script>
</head>
<body>
<header role="banner" id="top">
<div id="navbar" class="banner">
<div id="header-text">
<h1>
<strong id="top-title">
Atlas Land Office (text will change)
</strong>
</h1>
<p id="slogan">
Keeping lands fresh.
</p>
</div>
<div id="menu">
<ul role="navigation" class="banner">
<li>
<a href="#home">Home</a>
</li>
<li>
<a href="#land">Land Surveying</a>
</li>
<li id="nav-space-left">
<a href="#civil">Civil Engineering</a>
</li>
<li id="nav-home">
<a href="#top" title="Back to top">
<img src="#logo" alt="Atlas Land Office" />
</a>
</li>
<li>
<a href="#planning">Land Planning</a>
</li>
<li>
<a href="#company">Company</a>
</li>
<li>
<a href="#careers">Careers</a>
</li>
</ul>
</div>
</div>
</header>
</body>
</html>

我的CSS(我到目前为止 - 没有接近完成):

body {
height: 3000px;
top: 0;
position: relative;
}

#navbar {
position: relative;
width: 1329px;
height: 44px;
background: #CCC;
margin-left:-8px; /* Connects the navigation menu to the left "wall" */
margin-top:-8px;
top: 100px;
padding-left:10px;
padding-right:10px;
}

我的jQuery:

$(window).scroll(function () {
if ($(window).scrollTop() > 100) {
$('#navbar').css('top', $(window).scrollTop());
}
}
);

1 个答案:

答案 0 :(得分:0)

我已经改变了你的代码,现在工作正常。在Chrome

中测试过

<强> HTML

<body>
<header role="banner" id="top">
<div id="header-text">
    <h1><strong id="top-title">Atlas Land Office (text will change)</strong></h1>
    <p id="slogan">Keeping lands fresh.</p>
</div>

<div id="menu">
     <ul role="navigation" class="banner">
           <li><a href="#home">Home</a> </li>
           <li><a href="#land">Land Surveying</a></li>
           <li id="nav-space-left"><a href="#civil">Civil Engineering</a></li>
           <li id="nav-home"><a href="#top" title="Back to top"><img src="#logo" alt="Atlas Land Office"></a></li>
           <li><a href="#planning">Land Planning</a></li>
           <li><a href="#company">Company</a></li>
           <li><a href="#careers">Careers</a></li>
    </ul>
   </div>
</header>
</body>

<强> CSS

 body {
 height: 3000px;
 top: 0;
 position: relative;
   }
 #header-text{
  height:200px;
  border:2px solid;     
 }
 #menu {
display:block;
  }
 #menu ul {
width:1000px;
background-color:#666;
border:1px solid;
height:30px;
 }
 #menu ul li{
float:left;
padding:5px;
list-style:none;
 }
 #menu ul li a{
color:white;
text-decoration:none
 }
 .fixnav{
position:fixed;
top:0;
z-index:1000;   
 }

<强> JQUERY

  $(window).scroll(function ()

    {     
        if ( $(window).scrollTop() > 200)
        {
            $("#menu").addClass("fixnav");
        }
        else  if ($(window).scrollTop() < 200)
        {
            $("#menu").removeClass("fixnav");
        }
    });