2017-04-13 113 views
1
  1. 我有一个div (named=status bar)在页面的顶部,height = 25pxtop:0position: fixed
  2. 我想在这个状态栏下面放置一个引导navbar(带有透明背景)100px
  3. 当滚动页面时,沿navbar滚动,触动状态栏和: 3.1。在状态栏下方修复。 3.2。将其背景颜色更改为red (#ff0000)。 3.3。页面的其余部分向下滚动。
  4. 当页面向上滚动时,navbar和状态栏的位置保持固定,直到滚动达到几乎到达浏览器的顶部。
  5. 当到达浏览器的顶部时,状态栏将保持其位置,如#1所示。并且navbar滚动并在状态栏中设置为距离100px

HTML(状态栏)修复引导导航栏顶部的滚动

<div class="genxcoders-status-bar">  <div class="genxcoders-left genxcoders-fc-white genxcoders-fw-500"> 
     <span id="genxcoders-date"></span> 
    </div> 
    <div class="genxcoders-center"> 
     Support: <i class="fa fa-phone"></i> +91-712-606 GENX 
    </div> 
    <div class="genxcoders-right"> 
     <ul class="genxcoders-status-bar-social"> 
      <a href="#"><li><i class="fa fa-facebook-f"></i></li></a> 
      <a href="#"><li><i class="fa fa-twitter"></i></li></a> 
      <a href="#"><li><i class="fa fa-linkedin"></i></li></a> 
      <a href="#"><li><i class="fa fa-youtube-play"></i></li></a> 
     </ul> 
    </div> </div> 

HTML(导航栏)

<div class="nav-container" id="navigation"> 
     <div id="genxcoders" class="navbar navbar-default " role="navigation"> 
      <div class="container-fluid"> 
       <div class="navbar-header"><a class="navbar-brand" href="#">BlueGas</a> 
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-menubuilder"> 
         <span class="sr-only">Toggle navigation</span> 
         <span class="icon-bar"></span> 
         <span class="icon-bar"></span> 
         <span class="icon-bar"></span> 
        </button> 
       </div> 
       <div class="collapse navbar-collapse navbar-menubuilder"> 
        <ul class="nav navbar-nav navbar-right"> 
         <li class="active"><a href="/">Home</a></li> 
         <li><a href="/about-us">About Us</a></li> 
         <li class="dropdown"> 
          <a href="/products" class="dropdown-toggle" data-toggle="dropdown">Products <b class="caret"></b></a> 
          <ul class="dropdown-menu" role="menu"> 
           <li><a href="#">Services</a></li> 
          </ul> 
         </li> 
         <li><a href="/contact">Contact Us</a></li> 
        </ul> 
       </div> 
      </div> 
     </div> 
    </div> 

CSS(状态栏)

/*状态栏*/

.genxcoders-status-bar { width: 100%; height: 25px;  background-color: #1976d2;  position: fixed; top: 0;  z-index: 9999; } 

.genxcoders-status-bar > .genxcoders-left, .genxcoders-status-bar > .genxcoders-center, .genxcoders-status-bar > .genxcoders-right { width: 33.33%; height: 25px; line-height: 25px;  font-size: 12px;  float: left;  text-align: center;  color: #ffffff; } 

.genxcoders-status-bar > .genxcoders-right > ul.genxcoders-status-bar-social { list-style: none; margin-left: 
-30px; } .genxcoders-status-bar > .genxcoders-right > ul.genxcoders-status-bar-social > a > li { color: #ffffff;  display: inline-block; margin: auto 10px; } 

/*状态栏*/

CSS导航栏 /*应用程序栏*/

.nav-container { margin-top:100px;  width: 100%; height: 50px; 
     } .nav-container > #genxcoders.navbar-default .navbar-brand { 
    color: rgba(33, 33, 33, 1); } .nav-container > #genxcoders.navbar-default { 
    font-size: 15px; 
    /*background-color: rgba(255, 255, 255, 1);*/ background-color: transparent; 
    border-width: 0px; 
    border-radius: 0px; } .nav-container > #genxcoders.navbar-default .navbar-nav>li>a { 
    color: rgba(33, 33, 33, 1); 
    /*background-color: rgba(255, 255, 255, 1);*/ background-color: transparent; } .nav-container > #genxcoders.navbar-default .navbar-nav>li>a:hover, .nav-container > #genxcoders.navbar-default .navbar-nav>li>a:focus { 
    color: rgba(255, 255, 255, 1); 
    background-color: rgba(3, 169, 244, 1); } .nav-container > #genxcoders.navbar-default .navbar-nav>.active>a, .nav-container > #genxcoders.navbar-default .navbar-nav>.active>a:hover, .nav-container > #genxcoders.navbar-default .navbar-nav>.active>a:focus { 
    color: rgba(255, 255, 255, 1); 
    background-color: rgba(25, 118, 210, 1); } .nav-container > #genxcoders.navbar-default .navbar-toggle { 
    border-color: #1976d2; } .nav-container > #genxcoders.navbar-default .navbar-toggle:hover, .nav-container > #genxcoders.navbar-default .navbar-toggle:focus { 
    background-color: #1976d2; } .nav-container > #genxcoders.navbar-default .navbar-toggle .icon-bar { 
    background-color: #1976d2; } .nav-container > #genxcoders.navbar-default .navbar-toggle:hover .icon-bar, .nav-container > #genxcoders.navbar-default .navbar-toggle:focus .icon-bar { 
    background-color: #ffffff; } 

/*应用程序栏*/

FIDDLE

+1

你能否在这里更新你的代码... –

+0

你能创建一个代码片段,以便我们可以分析功能代码吗? – Lucian

+1

我无法创建代码样式,所以我使用了blockquote来放入代码 – GenXCoders

回答

2

有许多与你拨弄问题,有些比其他人更严重:

  • 要加载的jQuery在http://而不是https://和的jsfiddle阻止它。
  • 您正在检查window.scrollTop()针对#navigation.offset(),但您更改#navigation s offset()使用CSS并且它会导致条状态在状态之间闪烁。将其与100px(它不是固定的#navigation的边界顶部)进行比较,然后按照预期工作。
  • 定义var elementPositionscroll()功能之外,因此它不会对滚动更新
  • .scroll()功能手法过重。只需将一个类(fixed?)附加到#navigation,并将所有CSS放入#navigation.fixed { }声明中,然后放入您的CSS。我还没有在更新的小提琴中完成这最后一点,但我强烈推荐它。
  • 你的CSS选择器太强大了。只能使用足够强大的选择器,而不能使用更强大的选择器。例如,你的风格你.navbar-brand使用:
.nav-container > #genxcoders.navbar-default .navbar-brand {} 

...,但是你只需要选择强于

.navbar-default .navbar-brand {} 

你可以只使用#navigation .navbar-brand {}和,分别为:
#navigation.fixed .navbar-brand {}

您的updated fiddle

+0

你能否给我提供所有这些变化的小提琴?因为我无法理解!在此先感谢 – GenXCoders

+0

如果仔细观察,我的答案(*更新的小提琴*)中的最后两个单词被封装在一个定位标记(a.k.a链接)中。随意使用您选择的指针设备。我只是做了一个按钮。你现在看到了吗?按照我之前定义的 –

+0

,我希望导航栏在高亮显示的活动链接中透明。当navbar得到修复时,我想让导航栏的背景颜色变成浅蓝色。此外,正常状态下的字体颜色必须是白色,突出显示的颜色是深蓝色,而所有其他链接字体颜色应该是#212121。当导航栏修复时,字体颜色应该是白色的。这一切都发生了,但是当滚动并返回到正常状态后,hightlighted链接的字体颜色变为#212121而不是#ffffff。我怎么做。而且,在固定状态下不存在悬停效应。 – GenXCoders