如何创建跟随的导航栏并在滚动时添加徽标?

时间:2013-01-12 06:09:30

标签: jquery navigation scroll

如何重新创建类似Here

的导航栏

如果您滚动,此处导航栏不仅会跟随您,而且公司的符号会淡入导航栏。

有人可以帮助或指导我朝正确的方向发展吗?

2 个答案:

答案 0 :(得分:4)

我创造了这个:

jsBin demo

jQuery的:

var navPos = $('#nav').offset().top;

$(window).scroll(function(){

  var fixIT = $(this).scrollTop() >= navPos;
  var setPos = fixIT ? 'fixed' : 'relative' ;
  var logoSH = fixIT ? 'show' : 'hide' ;


  $('#nav').css({position: setPos});
  $('#mini-logo')[logoSH](300);

});

HTML:

 <div id="header">

   <h1>Company logo</h1>

   <div id="navigation">
     <ul id="nav">
       <li id="mini-logo"><a href="#">LOGO</a></li>
       <li><a href="#">PRODUCT</a></li>
       <li><a href="#">RESOURCES</a></li>
       <li><a href="#">CUSTOMERS</a></li>
       <li><a href="#">SUPPORT</a></li>
       <li><a href="#">COMPANY</a></li>
     </ul>
   </div>

  </div>

CSS:

#header{
  background:#eee;
}

#header h1{
  padding:20px;
}

#navigation{
  height:40px;
}
#nav{
  position:relative;
  top:0;
  width:100%;
  list-style:none;
  background:#76A000;
  height:40px;
}

#nav li{  
  float:left;  
}
#nav a{
 text-decoration:none;
  display:block;
  padding:10px 10px;
  color:#fff;
}

#nav li#mini-logo{
  display:none;
  font-weight:bold;
}

诀窍是获取#nav的位置,如果位置小于window scrollTop,滚动页面会做一些事情。
为了达到这种平滑效果,一旦我们将其位置设置为#nav,就必须确保fixed有替换元素以防止“跳跃”效果。
该元素是nav的父级#navigation,其高度与其子级相同。

答案 1 :(得分:0)

这是您正在寻找滚动部分

http://pmbennett.net/2010/02/09/fixed-scrolling-navigation/

淡入徽标只需使用: http://api.jquery.com/fadeIn/

在else {}