Movable Type 備忘録
prototype.jsを使ってタブ表示する
- Prev Page: MovableTypeで天気予報を表示してみる
- Next Page: Ajaxでアンケート投票する
CSSやJSでタブ表示されてる人もいるかと思いますが、今回prototype.jsを使ってタブ表示やってみましたのでご紹介します。
わたしのサイトではprototype.jsって結構使ってるのですが、Ajaxを使うためのライブラリなのかと思ってました。
実はそうじゃなくて、JSを統一した共通のインターフェイスとして使うためのライブラリみたいで、Ajaxもサポートしてますよ…というものみたいですね。
今回のカスタマイズでこんな使い方もできるんだ…ということを初めて知りました。
今回お世話になったサイトは、AUSGANG SOFT様です。
AUSGANG SOFTさんのところで、prototype.js でタブ切り替えというのが紹介されてたので、さっそくわたしのところでもサイトマップをタブ表示させてみました。
使い方はカンタンで、AUSGANG SOFTさんのところでも詳しく説明されてます。
▼tabMaker.jsの入手はこちらから▼
http://a-h.parfe.jp/einfach/archives/2006/1012175043.html
タブ表示の仕方
まず動作確認してみます。
上記URLから、tabMaker_sample.zipをダウンロードして、適当なフォルダに展開します。
そして、tabMaker_sampleフォルダをそのままサーバにアップロードしてください。
アップロード先はどこでも構いません。
次に、ブラウザからアップロードしたindex.htmlを表示してみます。 そうすると、タブ表示のサンプルページが表示されますね。
「使い方」というタブにもあるように、単純な構造になっているので何もムズかしいことはありません。 わたしが作ったサイトマップでは、タブの内容を囲う<div class="tabBox">~</div>のところに、カテゴリごとのエントリ一覧を表示するようにしています。 具体的には以下のようなXHTMLになります。
<div id="tabContent"><ul id="tabIndex"><MTTopLevelCategories><MTIfNonZero tag="MTCategoryCount"><li class="tab"><$MTCategoryLabel decode_html="1" remove_html="1"$></li><MTElse></MTElse></MTIfNonZero><MTSubCatsRecurse></MTTopLevelCategories></ul><div id="tabBoxIndex"><MTTopLevelCategories><MTIfNonZero tag="MTCategoryCount"><ul class="tabBox"><MTEntries sort_order="descend"><li><$MTEntryDate language='en' format='%Y/%m/%d'$> <a href="<$MTEntryPermalink$>" title="<$MTEntryTitle$>"><$MTEntryTitle$></a></li></MTEntries></ul><MTElse></MTElse></MTIfNonZero><MTSubCatsRecurse></MTTopLevelCategories></div></div>
上記例では、エントリが投稿された、すべてのカテゴリ内のエントリ一覧を表示しています。
青い字の部分がタブ表示されるところです。
緑の字の部分がタブが選択されたときに表示される内容になります。
大事な部分を赤い字で強調してみました。
必ず赤い字で示すようなID、クラス名を付けてください。そうしないと正しくJSが動作しませんので。
あとは、<head>~</head>の間に以下のコードを追加して、CSSをサイトに合わせて色などを調整して、再構築するだけでした。
<script type="text/javascript" src="<$MTBlogURL$>prototype.js"></script><script type="text/javascript" src="<$MTBlogURL$>tabMaker.js"></script><link rel="stylesheet" href="tabMaker.css" type="text/css" />
以上で、縦に長かったサイトマップだったのですが、カテゴリ別にタブ表示することで見やすくなりまいた。 こちらのDynamic Drive CSS Library- Plastic Tabs menuでデザインしたタブと併用してもいいかも、ですの。
では。
Trackback Pings(1)
- from
K's Labo
前々からある知人に、このブログの今までのエントリーの一覧は表示されないの?って聞...




ものすごくおひさしぶりです^^
いいですね^^ タブ表示。使えそうです^^
あとでじっくり読ませていただきます~
>>1 magnet さん
ご無沙汰しております^^
サイトの方の更新がここしばらくないので、ご多忙のようですね
でも、忙しいっていいことですよ( ̄∇ ̄)b
わたしは暇ほど嫌なものはないので・・・。
> あとでじっくり読ませていただきます~
はい♪
かわぐちです。
いいですね、これ。
早速、導入してみよ~と。
でも、いつ完成するか・・・。
またまた、かわぐちです。
このエントリーを参考にして、タブ表示を私のブログに設置してみました。
もしよければ、見てやってください。
All Archives ページにあります。
>>3 かわぐち さん
>>4 かわぐち さん
カックいいですねっ!!
縦に羅列したんですね。いいかんじですの♪
bzbell様
こんにちわ。ご無沙汰していました。
さてこちらのタブ表示、使わせていただきました。ありがとうございました。
ただ何だか変になってしまいました。タブがうまく表示できないのと、なぜかページのフッターの下の方に膨大な空スペースができてしまいました。何を間違ってしまっているのかが分かりません(汗)。
お手すきの時にちょっと覗いてみてアドバイスいただけると大変助かります。いつもいつもすみません。
ちなみに使っているページは以下のとおりです。
http://yoichi.typepad.jp/blog/links.html
>>6 yoichi さん
こんにちわ^^
yoichiさんのサイトのソースをざっと拝見させてもらいました。
見たところ、タブ表示に関しての記述は問題なさそうです (; ̄∇ ̄A
そこで、以下のことを確認していただけますか。
これはtabMaker.jsが実行される前に、他JavaScript(BlogPet)が実行完了済みである必要があるため。
これは他JavaScript(BlogPet)と何らかの干渉が発生しているか確認するため。
以上です ( ̄∇ ̄)/
bzbell様
ご指南ありがとうございました。
けれどもどうしてもうまくいきませんでした。やはり他のJSが干渉してしまっているようですがどれも今は外したくないので、ここは涙を呑んでDynamic Drive CSSのタブを使ってhtmlページを数枚こちょこちょ作りました。
素人には色々と難しいですね。もっとちゃんと勉強しくっちゃ!...なんて云うばかりで絶対しませんけどね(笑)
お騒がせいたしました。お手数をおかけしてしまい、面目なく。
重ねて、どうもありがとうございました。
>>8 yoichi さん
こんにちわ^^
そうですか。しょうがないですよね。
JavaScriptって便利な分、他のJavaScriptと干渉することがあるようで、わたしもその類で悩まされること多々です(つω-`。)
お役に立てなくてすいません (m;_ _)mペコ