« ラーメン劇場へ行って来ました | トップページ | 春うらら最中ミックス@桜花ぶろぐ »

2005.02.17

タブ切り替えで全てのBlogPetをサイドバーに表示

BlogPetの広場に表示していたペットたちを、タブを使ってサイドバーに表示するようにしました。
[あ] UnderDone(あんでるどん)さまの「複数のBlogPetをサイドバーに飼う方法」を参考にさせていただきました。

まず、以下の記述をCSSに追加します。
枠線の色は「#DB7093」を、非表示のタブの背景色は「#FFF2FA」になっています。
変えたい場合は、好きな色コードに置換してください。

.tabheader TABLE {
BORDER-COLLAPSE: collapse; border-spacing: 0
}
.tabheader TABLE TR TD {
BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px
}
.tabheader .close {
BORDER-RIGHT: #DB7093 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: #DB7093 1px solid; PADDING-LEFT: 0.5em; PADDING-BOTTOM: 0.5em; MARGIN: 0px; BORDER-LEFT: #DB7093 1px solid; PADDING-TOP: 0.5em; BORDER-BOTTOM: #DB7093 1px solid; WHITE-SPACE: nowrap; BACKGROUND-COLOR: #FFF2FA
}
.tabheader .open {
BORDER-RIGHT: #DB7093 1px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: #DB7093 1px solid; PADDING-LEFT: 0.5em; PADDING-BOTTOM: 0.5em; MARGIN: 0px; BORDER-LEFT: #DB7093 1px solid; PADDING-TOP: 0.5em; BORDER-BOTTOM: #fff 1px solid; WHITE-SPACE: nowrap; BACKGROUND-COLOR: white
}
.tabheader .spc {
BORDER-RIGHT: #fff 0px solid; PADDING-RIGHT: 0.5em; BORDER-TOP: #fff 1px solid; PADDING-LEFT: 0.5em; PADDING-BOTTOM: 0.5em; MARGIN: 0px; BORDER-LEFT: #fff 0px solid; PADDING-TOP: 0.5em; BORDER-BOTTOM: #DB7093 1px solid; WHITE-SPACE: nowrap
}
.tabheader A {
TEXT-DECORATION: none
}
.tabbody {
BORDER-RIGHT: #DB7093 1px solid; PADDING-RIGHT: 1em; BORDER-TOP: #DB7093 0px solid; PADDING-LEFT: 1em; PADDING-BOTTOM: 1em; BORDER-LEFT: #DB7093 1px solid; PADDING-TOP: 1em; BORDER-BOTTOM: #DB7093 1px solid
}

次に処理部のスクリプトをコピーします。

<SCRIPT language=JavaScript>
<!--
// bpref = tab body prefix, hpref = tab header prefix
function seltab(bpref, hpref, id_max, selected) {
if (! document.getElementById) return;
for (i = 0; i <= id_max; i++) {
if (! document.getElementById(bpref + i)) continue;
if (i == selected) {
document.getElementById(bpref + i).style.visibility = "visible";
document.getElementById(bpref + i).style.position = "";
document.getElementById(hpref + i).className = "open";
} else {
document.getElementById(bpref + i).style.visibility = "hidden";
document.getElementById(bpref + i).style.position = "absolute";
document.getElementById(hpref + i).className = "close";
}
}
}
// -->
</SCRIPT>

最後に、表示部を記述します。
タブの名前は、お好きなものに変えてください。
また私のタブの内容は、留守番背景対応になっています。
留守番背景を設定しない方は、BlogPetの呼び出しコードをそのままコピーしてください。

<DIV class=tabheader>
<TABLE>
<TBODY>
<TR>
<TD>
<DIV id=head1><A
href="javascript:seltab('box',%20'head',%2010,%201)">みゅみゅう</A> </DIV></TD>
<TD>
<DIV class=spc> </DIV></TD>
<TD>
<DIV id=head2><A
href="javascript:seltab('box',%20'head',%2010,%202)">ポテチ</A> </DIV></TD>
<TD>
<DIV class=spc> </DIV></TD>
<TD>
<DIV id=head3><A
href="javascript:seltab('box',%20'head',%2010,%203)">ころた</A>
</DIV></TD></TD>
<TD>
<DIV class=spc> </DIV></TD>
<TD>
<DIV id=head4><A
href="javascript:seltab('box',%20'head',%2010,%204)">紫苑</A> </DIV></TD>
<TD width="100%">
<DIV
class=spc> </DIV></TD><!-- ↑この 100% が重要。試しに消してみよう! --></TR></TBODY></TABLE></DIV><!-- タブの中味です -->
<DIV class=tabbody>
<DIV id=box1>
<table border=0 cellspacing=0 cellpadding=0 width=127 height=196 background="留守番背景URL"><tr><td><script language="JavaScript" type="text/javascript" src="BlogPetスクリプトURL" charset="UTF-8"></script></td></tr></table>
</DIV>
<DIV id=box2>
<table border=0 cellspacing=0 cellpadding=0 width=127 height=196 background="留守番背景URL"><tr><td><script language="JavaScript" type="text/javascript" src="BlogPetスクリプトURL" charset="UTF-8"></script></td></tr></table>
</DIV>
<DIV id=box3>
<table border=0 cellspacing=0 cellpadding=0 width=127 height=196 background="留守番背景URL"><tr><td><script language="JavaScript" type="text/javascript" src="BlogPetスクリプトURL" charset="UTF-8"></script></td></tr></table>
</DIV>
<DIV id=box4>
<table border=0 cellspacing=0 cellpadding=0 width=127 height=196 background="留守番背景URL"><tr><td><script language="JavaScript" type="text/javascript" src="BlogPetスクリプトURL" charset="UTF-8"></script></td></tr></table>
</DIV></DIV>

<script language="JavaScript">
<!--
seltab('box', 'head', 10, 1);
// -->
</script>

タブを使えば、留守番背景の記述もそのまま使えるのがいいですね。
The blog of H.Fujimotoさまの「BlogPetのランダム表示JavaScript」では、留守番背景は使えないような気がしていたので。
そのかわり4つ表示してしまうので、サイドバーが重くなるのは必定ですね。
その点はランダム表示の方が軽くて済みます。

表示に耐えないほど重くなるかどうか、様子を見ようと思います。
それからタブの大きさに合わせて、サイドバーを太くしてみました。
みなさまの感想もお聞かせください。

【2005.2.18 追記】
サイドバーでは重いようなので、BlogPetの広場に移動しました。
本文に記述すると<p>タグが入って上手く動かないので、<iframe>で表示しています。
最初縦長に表示したものをコンパクトにまとめるためか、スクロールバーが出てしまうのでなしにしました。

<iframe src="ページのURL" name="blogpettab_window" width="400" height="400" scrolling="no" frameborder="0" alt="BlogPetの広場"></iframe>

【2005.2.19 追記】
ランダム表示の改良版が登場し、留守番背景にも対応しました。
詳しくは「全てのBlogPetをサイドバーでランダム表示」をご覧ください。

|

BlogPet」カテゴリの記事

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/7313/2975188

この記事へのトラックバック一覧です: タブ切り替えで全てのBlogPetをサイドバーに表示:

» 複数のBlogPetを切替表示する方法 [Trial and Error]
BlogPetがリニューアルされてPetの種類が増えてから(BlogPet リニューアル!参照)、複数のBlogPetを飼っているブログをあちこちで見かけるよう... [続きを読む]

受信: 2005.02.18 03:01

» BlogPetたちをタブインデックスで表示させてみる [やむやむ]
JavaScript を使って 5種類の BlogPet を ランダムに表示させ... [続きを読む]

受信: 2005.02.18 05:56

» サイドバーに複数のBlogPetを切替表示 [Trial and Error]
【備忘録9】実際に複数のBlogPetを切替表示してみる きのう、複数のBlogPetを切替表示する方法を紹介する記事の紹介をして(ん?ヘタな日本語・・... [続きを読む]

受信: 2005.02.19 16:33

コメント

これもいいアイディアよね~。[ひらめき]
いろんな方法を思いつく人たちって・・・ホントすごいな~。( ^ー゜)b
うちはサイドバーの幅が狭いから、今のままかな。[!]

投稿 さえら | 2005.02.18 02:14

うちのサイドバーに合うような小さいサイズでタブ切り替えやってみました。
JSは 違うのを使ってます。
だけど・・・やっぱ重いわぁ。表示されるまでに時間かかっちゃうし。
ランダム表示と 一長一短よねぇ。

投稿 さえら | 2005.02.18 05:20

おぉ。KOROPPYさん、これはナイスですね~。

でも・・・でも・・・
ナローバンドの私には
とてもじゃないけど、待ちきれません(笑)

うぅ。
ブロードバンドの方達はいいなぁ~・・・・

投稿 ミッチ | 2005.02.18 07:06

★さえらさん
画像を使ったタブも可愛らしいですね。
ただサイトの表示が終わらないと見えないというのは、困りもの[涙]
機能と重さのバランスって難しいですね。

★ミッチ
やっぱりサイドバーでは重いですか[がーん]
広場の方でタブ表示に切り替えようかしら[・・・]

投稿 KOROPPY | 2005.02.18 07:55

こんにちは。

当方の「BlogPetランダム表示JavaScript」を改良しました。
ページ表示後も一定時間ごとにランダム表示したり、特定のペットへのリンクを表示したりすることができるようになりました。
また、試してはいませんが、留守番背景も入れられると思います。
こちらのページにありますので、良かったらご覧ください。

投稿 | 2005.02.19 08:24

★壱さん
お知らせありがとうございます。
他のペットへのジャンプリンクが追加されて、
軽さと便利さが強化されていますね[ハート]

これは、ペットごとにIDだけ変えて、
スクリプトの中身を直接はきだしているんですよね[?]
その場合、留守番背景がこちらと同じように、
隠れてしまうような気がするのですが。

投稿 KOROPPY | 2005.02.19 09:34

いろいろコメント頂きありがとうございました。
さっそく切替表示を実践してみました!のでご報告します。
2匹だと、気になって仕方がない程の重さはない感じです、一応は・・。
なので当分は切替表示でいこうと思います。
無事こねこも飼うことができましたし、便利な手法ではあるんですよね。

投稿 mugai | 2005.02.19 16:45

★mugaiさん
最初に読み込んであとは表示を切り替えるだけなので、
重くなければベストな選択ですよね。
無事できてよかったですね[♪]

投稿 KOROPPY | 2005.02.19 20:47

「こうさぎ・ぷらっとふぉーむ」のaltair_8800と申します.

この度は、コメントを頂きまして有難う御座います.

本来ならば、こうさぎ・ぷらっとふぉーむにて投稿致しました、こちらの御紹介記事の投稿直後に、こちらにTBすべきだったのですが、KOROPPYさんから先にコメントを頂く形になってしまい失礼致しました.

また、こうさぎ・ぷらっとふぉーむを背景画像探しの御参考にして頂いているとの事、大変に光栄です.

まだまだ、御紹介したい背景画像は山ほどあり、今後、順次御紹介して行きたいと考えておりますので、今後もこうさぎ・ぷらっとふぉーむに御越し下さい.

長文にて失礼致しました.

投稿 altair_8800 | 2005.02.19 22:33

★altair_8800さん
ご紹介いただけて、光栄でした。
また新作背景の発掘を楽しみにしております[♪]

投稿 KOROPPY | 2005.02.20 20:58

こんばんわ~
初めましてm(U_U*)m
BlogPetの切り替えをしたくて
mixiの友達にココのブログを教えてもらったんですが・・・

パソコンの事良く分かりません(UωUA;)
留守番背景URLとBlogPetスクリプトURLとは
何でしょうか??
教えて下さいm(U_U*)m

投稿 やまちゃん | 2006.11.28 19:24

【やまちゃんさんへ】
はじめまして、こんばんは。

>BlogPetの切り替えをしたくて
>mixiの友達にココのブログを教えてもらったんですが・・・

BlogPetの切り替えをするのであれば、追記にもある
「全てのBlogPetをサイドバーでランダム表示」
の方が軽くてよろしいかと思います。
当サイトでも、この方法を利用しております。

>留守番背景URLとBlogPetスクリプトURLとは
>何でしょうか??

留守番背景というのは、BlogPetサーバがダウンしたときなど、
ペットの表示が重い時に表示されるよう、
背後に設定しておく背景のことです。
「こうさぎサーバダウン時に留守番背景を表示する」
を詳しくは参照して下さい。

BlogPetスクリプトURLとは、BlogPetにログインして、
「設定」→「ペットの設置」ででてくる貼り付けコードにある、
URLのことです。

投稿 KOROPPY | 2006.11.28 19:36

「全てのBlogPetをサイドバーでランダム表示」と
「こうさぎサーバダウン時に留守番背景を表示する」
の内容をブラグインの HTMLに貼り付ければ
宜しいのでしょうか??

何度もすみませんm(U_U*)m

投稿 やまちゃん | 2006.11.29 19:52

【やまちゃんさんへ】
「全てのBlogPetをサイドバーでランダム表示」にあるように、
スクリプトを作成してファイルに保存し、
アップロードします(手順1~4)。
そして呼び出し部分の記述を、
プラグインのHTMLに貼り付ける形になります(手順5)。

留守番背景は他の背景画像と同様に、
どこかで入手したものをアップロードし、
留守番背景を指定する部分に、そのURLを指定します。

投稿 KOROPPY | 2006.11.30 10:52

KOROPPYさんのBlogPetのようにアイコン付けて
切り替えをしたかったのですが。。。

ワタシのは枠がある切り替えみたいなのですが。。。

一応、何とか出来ましたので・・・
有難う御座いますm(U_U*)m

投稿 やまちゃん | 2006.12.01 20:41

【やまちゃんさんへ】
上手くいったようで、よかったですね。

>ワタシのは枠がある切り替えみたいなのですが。。。
ブログを拝見しないとわからないですが、
CSSで画像に枠を設定しているのではないでしょうか。

投稿 KOROPPY | 2006.12.01 21:57

コメントを書く