2016-10-12 7 views
2


jQueryを使ってスクロールするとnavbarを崩壊しようとしています。私はあなたがそれらの上にマウスを置くとき、私のnavbarのすべてのリンクを赤くすることができるようにしたい。しかし、ナビゲーションバーは正常に動作しますが、ページを下にスクロールすると、CSSカラーとホバーセレクタが機能しないように見えます。 codepenのリンクはhttp://codepen.io/mrsalami/pen/kkpoPBです。JQueryがCSSのホバーセレクタに影響しているようです

私のHTMLコード

<nav class="navbar navbar-default navbar-fixed-top"> 
      <div class="container"> 
       <div class="navbar-header"> 
       <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> 
        <span class="sr-only">Toggle navigation</span> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
       </button> 
       <a class="navbar-brand" href="#">Student Support</a> 
       </div> 
       <div id="navbar" class="navbar-collapse collapse "> 
       <ul class="nav navbar-nav"> 
        <li class="active"><a href="#">Home</a></li> 
        <li><a href="#">About Us</a></li> 
        <li><a href="#">FAQ'S</a></li> 
        <li><a href="#">Availability</a></li> 
        <li><a href="#">Live Chat</a></li> 
       </ul> 
       <ul class="nav navbar-nav navbar-right"> 
        <li><a href="./">Login <span class="sr-only">(current)</span></a></li> 
       </ul> 
       </div><!--/.nav-collapse --> 
      </div><!- 
     </nav> 

マイCSS

.navbar-default .navbar-nav > .active > a, 
.navbar-default .navbar-nav > .active > a:hover, 
.navbar-default .navbar-nav > .active > a:focus{ 
    color:red; 
} 

@media(min-width:767px) { 
    .navbar { 
     padding: 20px 0; 
     -webkit-transition: background .5s ease-in-out,padding .5s ease-in-out; 
     -moz-transition: background .5s ease-in-out,padding .5s ease-in-out; 
     transition: background .5s ease-in-out,padding .5s ease-in-out; 
    } 

    .top-nav-collapse { 
     padding: 0; 
    } 
} 

.navbar-default { 
    background-color:rgba(0, 0, 0, 0.9); 
    border-color:transparent; 
    font-size: 16px; 
} 

.navbar-default .navbar-nav > li > a{ 
    padding-left: 20px; 
    padding-right: 20px; 
    color:#fff; 
    border-bottom-color: transparent; 
} 

.navbar-default .navbar-brand{ 
    color: #fff; 
} 

.top-nav-collapse { 
    background:#F8F8F8; 
    padding: 0; 
    font-size: 17px; 
    font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; 
    color: black; 
} 

.navbar-default .navbar-nav > .active > a, 
.navbar-default .navbar-nav > .active > a:hover, 
.navbar-default .navbar-nav > .active > a:focus{ 
    background: transparent; 
    font-weight: bold; 
} 

私のjQueryの

$(window).scroll(function() { 
    if ($(".navbar").offset().top > 50) { 
     $(".navbar-fixed-top").addClass("top-nav-collapse"); 
    } else { 
     $(".navbar-fixed-top").removeClass("top-nav-collapse"); 
    } 
}); 

$(document).scroll(function(){ 
    if($(this).scrollTop() > 50) 
    { 
     $('.navbar-default .navbar-nav > li > a').css({"color":"#777"}); 
    } else { 
     $('.navbar-default .navbar-nav > li > a').css({"color":"#fff"}); 
    } 
}); 

$(document).scroll(function(){ 
    if($(this).scrollTop() > 50) 
    { 
     $('.navbar-default .navbar-brand').css({"color":"#777"}); 
    } else { 
     $('.navbar-default .navbar-brand').css({"color":"#fff"}); 
    } 
}); 
+0

一つ、あなたはそれが非常に高い優先度を持つCSSで色を設定。あなたがしたいことは、特定のスタイルを設定するのではなく、クラスを追加/削除することです。 – JonSG

+0

JSを使用して色を追加すると、CSSホバー擬似セレクタはスタイルを適用するのに十分な優先順位を持ちません。 あなたは、おそらく、クラスを追加したり削除したりする方がよいでしょう。 デモ:http://codepen.io/marioluevanos/pen/ozyGvK?editors=0110 – bullzito

答えて

0

を追加しましたスクリプトを使用して追加しているクラスに基づいてcssベースを作成します。 top-nav-collapseクラスを使用して、必要な出力を得るためにCSSの数行を追加しました。

//jQuery to collapse the navbar on scroll 
 
$(window).scroll(function() { 
 
    if ($(".navbar").offset().top > 50) { 
 
     $(".navbar-fixed-top").addClass("top-nav-collapse"); 
 
    } else { 
 
     $(".navbar-fixed-top").removeClass("top-nav-collapse"); 
 
    } 
 
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<style> 
 
.navbar-default .navbar-nav > li > a:hover, 
 
.navbar-default .navbar-nav > li > a:focus{ 
 
    color:red; 
 
} 
 

 
@media(min-width:767px) { 
 
    .navbar { 
 
     padding: 20px 0; 
 
     -webkit-transition: background .5s ease-in-out,padding .5s ease-in-out; 
 
     -moz-transition: background .5s ease-in-out,padding .5s ease-in-out; 
 
     transition: background .5s ease-in-out,padding .5s ease-in-out; 
 
    } 
 

 
    .top-nav-collapse { 
 
     padding: 0; 
 
    } 
 
    .top-nav-collapse .navbar-default .navbar-nav > li > a{ 
 
    color:#777; 
 
} 
 
} 
 

 
.navbar-default { 
 
    background-color:rgba(0, 0, 0, 0.9); 
 
    border-color:transparent; 
 
    font-size: 16px; 
 
} 
 

 
.navbar-default .navbar-nav > li > a{ 
 
    padding-left: 20px; 
 
    padding-right: 20px; 
 
    color:#fff; 
 
    border-bottom-color: transparent; 
 
} 
 

 
.navbar-default .navbar-brand{ 
 
    color: #fff; 
 
} 
 
.navbar-default.top-nav-collapse .navbar-brand, .navbar-default.top-nav-collapse .navbar-nav a{ 
 
    color: #777; 
 
} 
 

 
.top-nav-collapse { 
 
    background:#F8F8F8; 
 
    padding: 0; 
 
    font-size: 17px; 
 
    font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; 
 
    color: black; 
 
} 
 

 
.navbar-default .navbar-nav > .active > a, 
 
.navbar-default .navbar-nav > .active > a:hover, 
 
.navbar-default .navbar-nav > .active > a:focus{ 
 
    background: transparent; 
 
    font-weight: bold; 
 
} 
 
</style> 
 
<!-- Static navbar --> 
 
     <nav class="navbar navbar-default navbar-fixed-top"> 
 
     <div class="container"> 
 
      <div class="navbar-header"> 
 
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> 
 
       <span class="sr-only">Toggle navigation</span> 
 
       <span class="icon-bar"></span> 
 
       <span class="icon-bar"></span> 
 
       <span class="icon-bar"></span> 
 
      </button> 
 
      <a class="navbar-brand" href="#">Student Support</a> 
 
      </div> 
 
      <div id="navbar" class="navbar-collapse collapse "> 
 
      <ul class="nav navbar-nav"> 
 
       <li class="active"><a href="#">Home</a></li> 
 
       <li><a href="#">About Us</a></li> 
 
       <li><a href="#">FAQ'S</a></li> 
 
       <li><a href="#">Availability</a></li> 
 
       <li><a href="#">Live Chat</a></li> 
 
      </ul> 
 
      <ul class="nav navbar-nav navbar-right"> 
 
       <li><a href="./">Login <span class="sr-only">(current)</span></a></li> 
 
      </ul> 
 
      </div><!--/.nav-collapse --> 
 
     </div><!--/.container-fluid --> 
 
</nav> 
 

 
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>

+0

ありがとうございました:) –

+0

@JamesBlakeようこそ:) –

0

たぶん、必ずそのクラスを作る(特定のクラスを追加/削除するためにあなたのjqueryの一部を使用してみてくださいCSSを直接​​操作するのではなく、ホバーと赤のスタイリングがあります)。

私はあなたのスタイルシートとjQueryの両方が色のCSS属性を操作していると思います。

あなたのコードでは!importantを使用することに注意してください。一般的に避けられ、通常は別の問題を隠蔽します。

私はそれが優先順位がある下ホバー・ツー・赤CSSを配置することにより、codepen更新され、クラスベースであることをjQueryのを少し微調整しました:

<p data-height="265" data-theme-id="0" data-slug-hash="NRzvEd" data-default-tab="result" data-user="mathewmullen" data-embed-version="2" class="codepen">See the Pen <a href="http://codepen.io/mathewmullen/pen/NRzvEd/">stack overflow assist</a> by Mat Mullen (<a href="http://codepen.io/mathewmullen">@mathewmullen</a>) on <a href="http://codepen.io">CodePen</a>.</p> 
 
<script async src="//assets.codepen.io/assets/embed/ei.js"></script>

関連する問題