将Bootstrap Navbar修复为滚动顶部

时间:2017-04-13 10:03:02

标签: jquery css twitter-bootstrap

  1. 我在页面顶部有height = 25px top:0position: fixednavbar
  2. 我想在此状态栏下方放置一个引导100px(透明背景)navbar
  3. 滚动页面时,red (#ff0000)会滚动并触摸状态栏并: 3.1。固定在状态栏下方。 3.2。将其背景颜色更改为navbar。 3.3。页面的其余部分向下滚动。
  4. 当页面向上滚动时,navbar和状态栏的位置保持不变,直到滚动到达浏览器的顶部。
  5. 当到达浏览器顶部时,状态栏保持在#1中的位置。并且100px滚动并设置为距状态栏<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> 的距离。
  6. 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>
    

    HTML(Navbar)

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

    / *状态栏* /

    CSS Navbar  / * App Bar * /

    export class MyPage {
    
        constructor(public service : Service){}
    
             // entry method 
             myPostData(): void {
               this.service.postData("http://127.0.0.1:3000/postData/",data)
             }
        }
    

    / * App Bar * /

    FIDDLE

1 个答案:

答案 0 :(得分:2)

你的小提琴有很多问题,有些问题比其他问题更严重:

  • 您正在http://而不是https://加载jQuery,并且jsFiddle会阻止它。
  • 您正在window.scrollTop()#navigation.offset()进行检查,但是您使用#navigation更改了offset() s CSS,这会导致条形状闪烁。将其与硬值进行比较,例如100px(当#navigation未修复时,它是var elementPosition的上边距,因此它可以按预期工作。
  • 您在scroll()函数之外定义.scroll(),因此滚动时不会更新
  • 您的fixed功能 太沉重 。只需将一个类(#navigation?)附加到#navigation.fixed { },并将所有CSS放在CSS声明的CSS中。我没有在更新的小提琴中完成最后一点,但我强烈推荐它。
  • 您的.navbar-brand选择器过于强大。只使用强度足以应用的选择器,而不是更强。例如,您使用以下方式设置 .nav-container > #genxcoders.navbar-default .navbar-brand {} 的样式:
.navbar-default .navbar-brand {}

...,但你只需要一个比

更强的选择器
#navigation .navbar-brand {}

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

您的 updated fiddle