jQueryを利用して特定の要素にクラスを付けたり外したりする処理のご紹介です。
例えば、グローバルメニューやサイドメニューなどをクリックした時、現在のページ(カレントページ)であるメニューのデザインを変更して、「今このページにいます」という見せ方ができるようになります。
Javascriptの記述例
<head>内にjqueryファイルを設置し、以下のようなjavascriptのコードを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(function(){ $('#nav li a').each(function(){ var $href = $(this).attr('href'); if(location.href.match($href)) { $(this).addClass('active'); } else { $(this).removeClass('active'); } }); }); </script> |
今回の例では、現在のページのメニューにclass=”active”を付けることで、メニューが選択された状態(active な状態)とそうでない状態とでデザインを変えます。
CSSの記述例
以下のCSSのサンプルですが、グローバルメニューを想定してリストを横並びにしています。メニューが選択された状態は#nav li a.activeで、選択されていない状態は#nav li aで、それぞれ背景色や文字色を変更しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#nav { margin:0 auto; text-align:center } #nav li { width:20%; display:inline-block; /display:inline; /zoom:1; vertical-align:middle; } #nav li a { display:block; width:100%; color:#000; text-decoration:none; padding:5px 0 background:#fff; border:1px solid #ccc; } #nav li a:hover { color:#fff; background:#dd0000; } #nav li a.active { color:#fff; background:#dd0000; } |
HTMLの記述例
最後にHTMLファイルのサンプルです。
1 2 3 4 5 6 7 |
<ul id="nav"> <li><a href="index.html">トップページ</a></li> <li><a href="company.html">会社概要</a></li> <li><a href="service.html">製品紹介</a></li> <li><a href="work.html">導入事例</a></li> <li><a href="contact.html">お問い合わせ</a></li> </ul> |
実際にどのような見え方になるのか?については、以下のページにサンプルを用意しましたのでご覧下さい。
現在のページのメニューデザインを変更する デモ
参考ページ
http://aroun-d.com/2012/04/10/3803/
コメント