2018年3月27日
グローバルナビに、現在のページの箇所だけ、デザインを変更したいってこと、多々ありますよね?
WordPressだと、if文の条件分岐で、is_pageを使えば、固定ページのスラッグから、クラスを付与することが出来ますが、今回はWordPressでの実装ではなかったので、少し手間取りました。
ってことで備忘録です。
<nav> <ul> <li class="navi_01"><a href="http://kyo-kara.xyz/">TOP</a></li> <li class="navi_02"><a href="/about">サイトについて</a></li> <li class="navi_03"><a href="/work">事業内容</a></li> <li class="navi_04"><a href="/access">アクセス</a></li> <li class="navi_05"><a href="/company">会社概要</a></li> </ul> </nav>
li要素にクラスnavi_01~navi05を持たせておきます。もちろん任意のクラス名でOK。
まずは、URL名です。
これは、トップページにいるときにHOMEやTOPといった箇所だけデザインを変えたい場合ですね。
もちろん、JQueryを読みこみしている前提です。
<!--現在のページにクラス付与--> <script> $(window).bind("load", function(){ var url = location.href;// 現在いるページののURLを取得 // 現在ページが http://kyo-kara.xyz/の時は.navi_01を持つliにcurrentを付与 if(url == "http://kyo-kara/xyz/"){ $('li.navi_01').addClass('current'); } }); </script>
下層ページの場合です。
<!--現在のページにクラス付与--> <script> $(window).bind("load", function(){ var url = location.href;// 現在いるページののURLを取得 // URLにaboutが含まれていた時は.navi_02を持つliにcurrentを付与 if(document.URL.match("/about")) { $('li.navi_02').addClass('current'); } }); </script>
トップも他の下層ページもデザインを変えるなら、こんな感じでしょうか。
<!--現在のページにクラス付与--> <script> $(window).bind("load", function(){ var url = location.href;// 現在いるページののURLを取得 // 現在ページが http://kyo-kara.xyz/の時は.navi_01を持つliにcurrentを付与 if(url == "http://kyo-kara/xyz/"){ $('li.navi_01').addClass('current'); } // URLにaboutが含まれていた時は.navi_02を持つliにcurrentを付与(以下省略) if(document.URL.match("/about")) { $('li.navi_02').addClass('current'); } if(document.URL.match("/work")) { $('li.navi_03').addClass('current'); } if(document.URL.match("/access")) { $('li.navi_04').addClass('current'); } if(document.URL.match("/company")) { $('li.navi_05').addClass('current'); } }); </script>
意外と簡単に実装できますが、結構工数取られちゃいました(>_<) これは、今後も間違いなく使うので、忘れないようにしとかないと。 ではでは。