【javascript】jQueryだけでタブ切り替えサンプル(ローテク版)
jquery.ui を使えば、美しいタブ切り替えをあっという間に作成可能です。
uiを導入していないとき、あまりあれこれ入れたくないとき、美しくなくていいとき(?)など、何かしらの事情がある場合は、jqueryだけで十分です。
<html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>jQueryだけでタブ切り替えサンプル</title> <style type="text/css"> /* タブっぽく並べて */ #tabs ul {list-style:none;} #tabs li {float:left; width:150px;} #tabs a {display:block; margin:5px; border:1px solid #ccc; padding:5px;} /* 最初はパネルは非表示 */ #tabs .panel {display:none; clear:both; width:780px; border:1px solid #ccc; padding:10px;} </style> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script type="text/javascript"> $(function() { /** * 1行で書いて、必要なだけコピペ * hrefが#tab何々となっているアンカーをクリックすると * IDがpanel何々となっているdivを全部非表示にして、希望のpanelをフェードインして表示 * event.preventDefault() は onclick="return false;"的な役目 */ $('#tabs a[href="#tab1"]').click(function(event){$('#tabs div[id^="panel"]').hide(); $("#panel1").fadeIn(); event.preventDefault();}) $('#tabs a[href="#tab2"]').click(function(event){$('#tabs div[id^="panel"]').hide(); $("#panel2").fadeIn(); event.preventDefault();}) $('#tabs a[href="#tab3"]').click(function(event){$('#tabs div[id^="panel"]').hide(); $("#panel3").fadeIn(); event.preventDefault();}) $('#tabs a[href="#tab4"]').click(function(event){$('#tabs div[id^="panel"]').hide(); $("#panel4").fadeIn(); event.preventDefault();}) }) </script> </head> <body> <h1>jQueryだけでタブ切り替えサンプル</h1> <div id="tabs"> <ul> <li><a href="#tab1">お知らせ</a></li> <li><a href="#tab2">ご利用方法</a></li> <li><a href="#tab3">利用規約</a></li> <li><a href="mailto:test@example.com">お問い合わせ</a></li> <li><a href="#tab4">運営会社</a></li> </ul> <div id="panel1" class="panel"> <p>普通のタブ切り替えサンプルです。</p> </div> <div id="panel2" class="panel"> <p>もっとハイテクな書き方もできますが、わりとローテク&コピペで増やせる作戦を実施しています。</p> </div> <div id="panel3" class="panel"> <p>タブの中にメール送信など変わったアクションが混ざっていても大丈夫です。</p> </div> <div id="panel4" class="panel"> <p>順番や配置の位置関係には特にルールがありません。</p> <p>逆に、1個目のタブをクリックすると1個目のパネルを開くといったルールを決めれば、Javascriptはもっと短くできます。</p> <p>デザインに関しても、ほぼ作成者の自由になります。</p> </div> </div> </body> </html>
動作サンプル
普通のタブ切り替えサンプルです。
もっとハイテクな書き方もできますが、わりとローテク&コピペで増やせる作戦を実施しています。
タブの中にメール送信など変わったアクションが混ざっていても大丈夫です。
順番や配置の位置関係には特にルールがありません。
逆に、1個目のタブをクリックすると1個目のパネルを開くといったルールを決めれば、Javascriptはもっと短くできます。
デザインに関しても、ほぼ作成者の自由になります。
jQueryは、セレクタが強力なので操作したい要素を探すのが楽。
ある程度出来合いの操作があるので、操作も楽(表示、非表示、フェードイン、フェードアウト etc.)
こちらも!
この記事はだいぶ以前に書いたものなので、こちらも書いてみました。
sato 2012年3月11日 12:11
他のサイトの解説はいまいち分からなかったのですが、ここの解説を参考にしたところ、簡単に出来ました!!
ありがとうございました。