※バナー画像は見本なので、該当サイトの本物のバナーではありません。
横の列、縦の行の指定数値を変更するだけで簡単にtableの形が変えられる可変tableのセルの中に、別の小さなtableを入れました。
大きなtableのセルの中に、小さなtableが1個ずつ入る、入れ子式のJavaScriptです。
小さなtableは、上にサイト名、下に説明文が入ります。
つまり「その他19 ■table■ 可変tableに上下の入れ子(画像)」で並べた画像を、サイト名に変更した形です。サイト名は、データにタグを使用すれば画像に変更することもできます。
見本は横3×縦3の指定ですが、数値を変更するだけで、横1×縦8とか横2×縦4のtableになります。
今回は、さらにJavaScriptで背景色2色(何色でも可。交互に出ます)指定。
背景色は、行(tr)に指定すると横1行ごとに変化します。
セル(td)に指定すると、セルごとに変化します。2色指定を横列が偶数のtableのセルに指定すると、縦1列ごとに色が変化します。
しかし見本のように、横列が奇数の場合は、格子模様に色が変化します。
一番下のソースでは、1.CSSで背景指定、2.JSで行(tr)に背景2色指定、3.見本のJSでセル(td)に背景2色指定の、3通りの見本を用意しました。
データ項目が3個の、JavaScriptの可変tableです。今回は、データの1個目の要素「サイト名」と3個目の要素の「サイト説明文」に、タグが使用できます。
■データを記述するだけで、説明文付きのサイト名が、1行に複数作成できます。
・サイト名をクリックするとリンク先に飛びます。
・サイト名の項目にタグで画像を指定すると、サイト名の代わりに画像が表示されます。
・横列、縦行の変更が数値変更するだけで可能。
1. 最初にtableのセルの数を考えて、縦と横の指定をする
最初に表示したいデータの数を考えます。見本は8個なので、
var col=3;//★横に並べる列の数
var row=3;//★縦に並べる行の数
セルを横1×縦8で並べることも可能ですし、横2×縦4にすることもできます。この2つの数値を修正するだけです。余ったセルは空白表示になります。
◆◇◆ 実際には、var row=●;の縦の行の数は、キッチリではなく多めに指定しても大丈夫です。何もデータの無い行は、表示自体がされません。データのある行だけ表示されます。その代わりデータの数よりセルの数が少ないと、表示しきれないデータがでてきます。◆◇◆
2. tableのセルのデータ記述方法
1行の中に記述するデータは3個です。Tga[k++]=["サイト名","サイトURL","サイト説明文"];という形になります。
この3個の記述順番は必ず守って下さい。
もちろんいままでどおり、データの入れ替え、増減は自由にできます。
Tga[k++]=["Dynamic Drive","http://www.dynamicdrive.com/","英語サイトですが、たくさんのJavaScriptのソースがあります。<br>利用規約は<span style='color:red;'>スクリプト上のクレジットを削除しない</span>こと。"];
:
:
Tga[k++]=["<img src='frc16.gif' title='HIMAJIN'>","http://himajin.moo.jp/","コピペですぐに使えるJavaScript。<br>マウスストーカー、グラデーション文字など有り。"];
上記が今回のtableのデータの記述です。
もしもサイト名の代わりに画像を表示する時は、最終行の見本のように画像タグを使って記述して下さい。
いままでの自動、可変tableと同じように、行はいくらでも増加可能です。
他の自動、可変tableと同じく、データにタグを記述する時は、「"」ではなく「'」を使用します。
3.位置指定の方法
いろいろと面倒なので、位置指定はdivの#wakuTではなく、tableの#Tbでします。
そのまえに、この二つの説明をします。
この自動、可変tableは、bodyに<table id="Tb"></table>と記述しても表示しないので、tableを<div id="wakuT"><table id="Tb">〜〜〜</table></div>で囲む形で表示しています。
ただし、<table id="Tb">〜〜〜</table>の部分はJavaScriptのソースの中に記述してあります。
いろいろな文章の下にこのtableを表示したい時、そのbodyの中の場所に<div id="wakuT"></div>を記述することで、tableの位置指定ができるのです。
ところがdivは、は左から●px、上から●pxという位置指定は簡単ですが、中央配置するには、横幅サイズを指定しないとできません。
サイズ指定ができれば問題ないのですが、大量のデータを並べると具体的なサイズが不明です。
しかしtableは、具体的な横幅がなくても中央配置が可能です。だからtableの#Tbで位置指定する方が、簡単なのです。
#wakuTと#Tbの関係は、ためしに#wakuTに背景色を指定してみるとわかります。
他のJavaScriptとの記述の違い
項目が1個だけでも複数でも、このtableのJavaScriptは、他の当サイトのJavaScriptと大きく違う点があります。
それはデータ番号を記述する場所に、数字が入ってない点です。普通は
Tga[0]=〜〜〜
Tga[1]=〜〜〜
Tga[2]=〜〜〜
と、数字が入っているところが、
Tga[K++]=〜〜〜
Tga[K++]=〜〜〜
Tga[K++]=〜〜〜
となっています。
これは行の入れ替えを簡単にするためです。数字を入れていると、下の行を上にしたり途中の行を丸ごと削除した時には、番号を付け直す必要があります。
じゃあ、他のJavaScriptもそうすればいい?
いえいえ、たとえばコメント付きの簡単スライドショーの場合を考えてみて下さい。
数字を付けることで、ga[0]の画像にmes[0]のコメントが記述しやすくなります。
数字が無いと間違えて ga[3]の画像に、mes[4]のコメントを付けてしまったりします。間違えた場合、どの行を間違ったのかの把握も難しいです。
でも画像だけのスライドショーの場合は、ga[i++]で記述してあれば、最新の画像を一番上に記述して、数字を書き直す必要がないというメリットはあります。
ケース・バイ・ケースでどうぞ。
tableの場合も、「行の入れ替えや削除をする必要が全くない」か、「入れ替えたり削除したら、自分で数字を書き直す」のであれば、
Tga[0]=〜〜〜
Tga[1]=〜〜〜
Tga[2]=〜〜〜
と記述しても、大丈夫です。
なお参考にしたサイトがたくさんあります。代表的なものを2つだけ紹介します。
行と列を指定してtableを作る方法は、HAKUHIN's home pageから。
2次元配列に連番を付ける方法は、@ITから。