2016-11-29 8 views
0

セクション間でスクロールするメニューの色を変更する必要があります。 URLに特定のアンカーが含まれている場合、メニューの色が変わる必要があります。 私は以下を試しましたが、このケースでは、特定のアンカー上にある場合にのみメニューが変化し、別のアンカーに再びスクロールするとメニューは変わりません。JQueryで特定のURLアンカーにクラスを追加する

$(document).ready(function() { 
    if (window.location.href.indexOf("#7") > -1) { 
    $('.menu_item a').css('color', '#000'); 
    } else { 
    $('.menu_item a').css('color', '#fff'); 
    } 
}); 
+0

スクロールでコード*を呼び出す必要があります。*上記のコードは、ドキュメントの準備ができたらすぐに再現します。 – tymeJV

+0

すばらしくシンプルで正しい! – Stefano

+0

実際には - @adeneoが良いアイデアを持っています。彼が提供した答えを見てください。 – tymeJV

答えて

2

あなたはなhashchangeは、ページをリロードしないとハッシュは、だけではなくpageloadに、同様に変更する火災イベントハンドラが必要になります。

$(document).ready(function() { 
    $(window).on('hashchange', function() { 
     if (window.location.href.indexOf("#7") > -1) { 
      $('.menu_item a').css('color','#000'); 
     } else { 
      $('.menu_item a').css('color','#fff'); 
     } 
    });  
}); 

はまた、スクロールイベントを使用することができますが、そこhashchangesための特定のイベントがあり、ハッシュは異なる結果を得るために変更することがあるとして、あなたはおそらくhashchangeイベントとの方が良いと思います。

関連する問題