前提・実現したいこと
jQuery初心者です。
グローバルメニューについて、現在のページにバー(下線)をつけ、尚且つ追従させ、
グローバルメニューに無いページではバー事態非表示にさせたいです。
「現在のページに.currentをつけるjQuery」と、「メニューにバーを追随させるjQuery」は
サイトで見つけたjQueryをコピペして少しいじって、うまくいっています。
ここからが問題なのですが、.currentが無い時(グローバルメニュー以外のページを開いてる場合.currentが無い状態)に、バーは非表示にしたいのですが、どこをどのように書けば良いですか?
よろしくお願いします。
発生している問題
.currentがつかないページではアンダーバーが左寄せで表示されてしまっている。→消したい
該当のソースコード
HTML
1 2 <nav class="nav"> 3 <div id="g-nav"> 4 <a href="index.html">HOME</a> 5 <a href="access.html">アクセス</a> 6 <a href="location.html">周辺環境</a> 7 <a href="plan.html">プラン</a> 8 <a href="facility.html">設備</a> 9 <a href="outline.html">物件概要</a> 10 <span></span> 11 </div> 12 </nav>
CSS
1#g-nav{ 2 position: relative; 3 padding-right: 20px; 4 padding-top: 20px; 5} 6#g-nav a{ 7 padding:10px; 8 text-decoration: none; 9 color: #0C0B08; 10} 11#g-nav span { 12 background: #D3CAC1; 13 height:3px; 14 display:block; 15 position:absolute; 16 width:50px; 17 left:0; 18}
jquery
1<script> 2$(function(){ 3 $('#g-nav a').each(function(){ 4 var $href = $(this).attr('href'); 5 if(location.href.match($href)) { 6 $(this).addClass('current'); 7 } else { 8 $(this).removeClass('current'); 9 } 10 }); 11}); 12 13$(function() { 14 $('#g-nav span').css({ 15 width: $('#g-nav .current').outerWidth(), 16 left: $('#g-nav .current').position().left 17 }); 18 $('#g-nav a').mouseover(function(){ 19 $('#g-nav span').stop().animate({ 20 width: $(this).outerWidth(), 21 left: $(this).position().left} 22 ,{ duration: 170, easing: 'linear', }); 23 }); 24}); 25</script>
試したこと
考えたのは、#g-nav aに.currentが無かったら#g-nav spanを消せば良いのかな?
と思って、調べて下記のコードをjqueryのscriptの中に続けて書いてみましたが違ったようです・・・(そもそもjavascriptやjqueryの文法などが分からないため見当違いなことをしていたらすみません)
if ($("#g-nav a").not("current")) {
$('#g-nav span').hide();
}
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー