私はこの質問が何度か尋ねられていることを認識していますが、解決策のどれも私のために働いていません。ここに私のHTMLは次のとおりです。アクティブなナビゲーションバーのリンクを背景色に変更するにはどうすればよいですか?ブートストラップ4.
<div class="navbar-light" style="position: sticky; top: 0px; background: #fff0d8; z-index:99;"> <!--z-index to stay on top of everything else-->
<div class="container">
<ul class="sc-nav nav navbar-nav nav-fill w-100 flex-md-row">
<li class="nav-item">
<a class="nav-link" href="#">oihdma</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">saaaassas</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">fffffffffffff</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">dsdsd</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">fsfsfsfs</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">fffff</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">xxxxx</a>
</li>
</ul>
そして、私のスクリプト:
$(document).ready(function() {
var url = this.location.pathname;
var filename = url.substring(url.lastIndexOf('/')+1);
$('a[href="' + filename + '"]').parent().addClass('active');
});
それはページのロード後に実行されるように、私はページのフッターにこのスクリプトを残しました。
最後に、私のCSS:
ul.nav a:hover, ul.nav a:focus, ul.nav a:active { background-color: #FDCBA3;}
ホバーと意図したとおりに作業を集中しますが、アクティブではありません。スクリプトによってリンクがアクティブになり、テキストの色が変わり、正常に動作します。しかし、背景色は変化しません。ホバリング時とフォーカス時に変化しますが、クリックした場合は変化しません。
あなたのjqueryがアクティブなクラスを追加した場合、あなたのCSSもそれを含むべきではありませんか? –
CLARIFY:リンクが定義されていない場合()、クリックすると、ページの他の部分をクリックするまで背景色が変更されたままになります。しかし、ナビゲーションバーで定義されたリンクをクリックすると、ページの読み込み時に色が元に戻ります。 – bogdan
[JsFiddle](https://jsfiddle.net/us3L90fs/)でこれをテストしたところ、うまくいくはずです。変更なしでJsFiddleで動作しました – jsrbn