2017-07-11 1 views
-1

J'ai commencé à coder il y a quelques mois et j'en ai presque fini avec un site de base.Menu hamburger - délai de couleur d'arrière-plan (bootstrap4)

Le problème que je n'arrive pas à résoudre est l'arrière-plan du menu hamburger. J'ai réussi à donner au menu une couleur d'arrière-plan avec CSS, mais en cliquant dessus, le menu ne change pas directement à cette couleur. Il y a un très court délai mais ça me frustre un peu!

Excuses si l'un des codes est en désordre. Toute critique constructive est la bienvenue!

Lien: https://codepen.io/MikeyT24/pen/xrQvxe

HTML

<nav class="navbar fixed-top navbar-inverse navbar-toggleable-sm opaque-navbar"> 
    <div class="container containernav"> 
    <button class="navbar-toggler " type="button" data-toggle="collapse" data-target="#myContent" aria-controls="myContent" aria-expanded="false" aria-label="toggle navigation"> 
    <span class="navbar-toggler-icon"></span> 
    </button> 
    <h1 class="navbar-brand m-0 ">Michael Treeves</h1> 
    <div class="collapse navbar-collapse" id="myContent"> 
    <div class="navbar-nav ml-auto"> 
    <a class="nav-item nav-link" href="#about">About</a> 
    <a class="nav-item nav-link" href="#portfolio">Portfolio</a> 
    <a class="nav-item nav-link" href="#contact">Contact</a> 
    </div> <!--navbar-nav--> 
    </div> <!--collapse--> 
    </div> <!--container--> 
</nav> 

CSS

/*********************************************************** 
    OPAQUE NAVBAR SECTION 
**********************************************************/ 
.opaque-navbar { 
    background-color: rgba(0,0,0,0); 
    height: 50px; 
    border-bottom: 0px; 
    transition: background-color 0.5s ease 0s; 
} 

.opaque-navbar.opaque { 
    background-color: rgba(100,100,150,0.9); 
    height: 50px; 
    transition: background-color 0.5s ease 0s; 
} 

@media (max-width: 992px) { 
    .opaque-navbar { 
    height: 50px; 
    transition: background-color .5s ease 0s; 
} 

@media (max-width: 768px){ 
.collapse { 
    background-color: rgba(100,100,150,0.9); 
} 

Script (pas sûr le cas échéant)

* OPAQUE NAVBAR SCRIPT 
    ********************************************************** 
    */ 

    // Toggle tranparent navbar when the user scrolls the page 

    $(window).scroll(function() { 
    if($(this).scrollTop() > 650) /*height in pixels when the navbar becomes non opaque*/ 
    { 
     $('.opaque-navbar').addClass('opaque'); 
    } else { 
     $('.opaque-navbar').removeClass('opaque'); 
    } 
}); 

Merci beaucoup!

Mike.

Répondre

0

lors de l'ouverture navbar bootstrap change de classe .collapse à .collapsing puis .collapse c'est pourquoi l'application de fond après quelques secondes.

Utilisez plutôt .navbar-collapse.

.navbar-collapse { 
    background-color: rgba(100,100,150,0.9); 
}