現在、wordpressにて、タブメニュー入りのページを作っていますが、添付の画像のように、ページの上下に、連動したタブメニューをつける方法を教えてください。
ちなみに、
ヘッダーに↓の記述をし、
<script>
<!--
jQuery( function() {
jQuery( '#jquery-sample-tabs > ul > li' ) . click( function () {
var str = jQuery( 'input', this ) . val();
jQuery( '#jquery-sample-tabs > div' ) . not( str ) . css( 'display', 'none' );
jQuery( str ) . css( 'display', 'block' );
jQuery( this ) . css( { 'backgroundColor': '#F3F3F3', 'border-bottom': 'none' } );
jQuery( '#jquery-sample-tabs > ul > li' ) . not( this ) . css( { 'backgroundColor': '#f60', 'border-bottom': 'solid 1px #F3F3F3' } );
} ) . first() . click();
} );
// -->
</script>
cssに↓の記述をし、
#jquery-sample-tabs {
width:750px;
background:#F3F3F3;
}
#jquery-sample-tabs ul {
background:#000;
margin: 0;
padding: 5px 5px;
}
#jquery-sample-tabs ul li {
display: inline;
margin: 1px;
padding: 5px 20px;
border: solid 1px #888888;
border-radius: 5px 5px 0px 0px;
background-color: #F3F3F3;
cursor: pointer;
}
#jquery-sample-tabs div {
padding: 10px 15px;
}
HTMLに↓の記述をしています。
<div id="jquery-sample-tabs" class="jquery-sample-tabs">
<ul>
<li>
<input id="#jquery-sample-tab-1" type="hidden" value="#jquery-sample-tab-1-contents" />
タブ(1)
</li>
<li>
<input id="#jquery-sample-tab-2" type="hidden" value="#jquery-sample-tab-2-contents" />
タブ(2)
</li>
<li>
<input id="#jquery-sample-tab-2" type="hidden" value="#jquery-sample-tab-3-contents" />
タブ(3)
</li>
</ul>
<div id="jquery-sample-tab-1-contents">(1)の内容</div>
<div id="jquery-sample-tab-1-contents">(2)の内容</div>
<div id="jquery-sample-tab-1-contents">(3)の内容</div>
</div>
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
No.1です。
ご提示のソースと画像がどうも合っていないような…
とりあえず、No.1の回答の具体例。原理的な部分のみです。。
角丸などの調整は適宜行なってください。
(全角空白は半角に)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>sample</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<style type="text/css">
<!--
body{ background-color:#fff; }
ul.tabs, ul.tabs li{
list-style-type:none;
margin:0;
padding:0;
}
ul.tabs li{
padding:3px 20px;
float:left;
margin-right:2px;
border:1px solid #999;
background-color:#eee;
cursor:pointer;
}
ul.tabs li.active{ color:#fff; background-color:#999; }
div#panels{ clear:left; background-color:#999; }
div.panel{ height:24em; }
//-->
</style>
<script type="text/javascript" src="js/jquery-1.5.2.min.js"></script>
<script type="text/javascript">
<!--
$(function(){
$("ul.tabs>li").click(function(){
var num = $(this).parent().children("li").index(this);
$("ul.tabs").each(function(){
$(">li",this).removeClass("active").eq(num).addClass("active");
});
$("div#panels .panel").hide().eq(num).show();
}).first().click();
});
//-->
</script>
</head>
<body>
<ul class="tabs topTab">
<li>タブ(1)</li>
<li>タブ(2)</li>
<li>タブ(3)</li>
</ul>
<div id="panels">
<div class="panel">(1)の内容</div>
<div class="panel">(2)の内容</div>
<div class="panel">(3)の内容</div>
</div>
<ul class="tabs bottomTab">
<li>タブ(1)</li>
<li>タブ(2)</li>
<li>タブ(3)</li>
</ul>
</body>
</html>
No.1
- 回答日時:
回答がないようですので…
HTMLの後側に同じようなtabを設定してあげればよいでしょう。
ご提示のソースでは、ながいIDがたくさんふってありますが(笑)、IDがかぶつているので多分予定したようには動作しないのではないでしょうか。
スクリプトの処理で上下のタブにほぼ同じ処理をすることになるとおもいますが、jQueryを使うのなら同じセレクタで両方を処理できるようにしておいたほうが簡単だと思います。
また、わざわざ input type=hidden で表示パネルのIDを指定しているようですが、タブの数が増減したときに面倒な気がします。
基本的にタブと表示パネルとは順序が同じだと推測しますので、もしそうであるなら、IDは不要にすることができます。
具体的には、タブのULに class="tabs upper"、class="tabs under"などと設定しておいて、表示パネルのほうはその親要素に id="panels"などとしておくだけ。(名称は例です。タブは角丸や枠線の設定で、上下を区別する必要がありそうなので。)
処理としては、クリックされたLIの順番を取得し、その順のパネルを表示するとともにタブのLIに class="selected" を設定してあげるといった感じ。
li.selectedには、あらかじめCSSで色などを設定しておいてあげればよろしいかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「jQuery」アコーディオンメニ...
-
jqueryのsortableで一部ソート...
-
.innerHTMLの不一致?
-
アコーディオンメニューの開閉制御
-
jQuery タブメニューへのダイ...
-
jQueryで表示する吹き出しdivの...
-
多階層ドロップダウンのスマホ...
-
アコーディオン自動開閉メニュ...
-
【JQuery】アコーディオンの入...
-
javascriptでフォーカスを当て...
-
MAX関数を使ってからLEFT JOIN...
-
javascriptテキストBOX色を元に...
-
c++std::string型をTCHARに変換...
-
Slick.jsのオプションrtlについて
-
fontsize.jsでhtmlの大中小の設...
-
jQueryでサーバー上のファイル...
-
表と裏がある1枚の画像を回転す...
-
横並びの画像を3枚時間差でフェ...
-
positionのrelativeとabsolute...
-
バッチファイルでカウントアッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「jQuery」アコーディオンメニ...
-
jqueryのsortableで一部ソート...
-
jquery ドロップダウンメニュー...
-
JQueryタブのアクティブ アン...
-
ネストされたチェックボックス...
-
jQueryのeqで最後からn番目以降...
-
大量のチェックボックス状態取...
-
スムーズスクロールとfleXcroll...
-
jQueryでネスト構造の<li>がク...
-
チェックボックスに入っている...
-
スタイルシートでロールオーバ...
-
画像のリンクをクリックすると...
-
jquery中のmatch関数が正常に動...
-
javascript テキストエリアを1...
-
javascriptでEnterキーをtabキ...
-
jQueryで電卓を作っているのですが
-
javascriptで教えてください。 ...
-
どの<li><a> が押されたか判別...
-
多階層ドロップダウンのスマホ...
-
動画サイトのURLからswfを抜き...
おすすめ情報