Sorry, Only for JAP.
Making T a b l e s with fun.
明るく楽しい T A B L E タグ 講座
Only for IE3.0 or NN3.0

第3回 「そこまでやるか」の
クリッカブル・マップもどき
(96/08/08)
 あーー、これはカンタン、簡単。ま、見ればわかります。
 クライアントサイドのクリッカブルマップを作成するには、それ用のツール類も数多くあるようですが(たとえば、シェアウェアのMapEditとか)、何が不満かといって、その時点におけるマウスポインタが、どこにリンクされているのかが、比較的わかりにくいということです。
 まあ、だいたいにおいて、外れることはありませんが、「あ、こんなの選んでしまった!」と思った後に、再びマップを表示させるときの口惜しさといったらありません。しかも、ほとんどの場合、そのマップがでかかったりして、再表示に時間がかかってしまうものです。
 TABLEタグによるクリッカブルマップなら、そんな事態はほとんど発生しないでしょう。特にIEの場合、リンクされているイメージにALTパラメータで、コメントを付けていれば、チップヘルプが表示されますから、安心です。
第1回 簡単な見出しカラーを付ける 第2回 グラフだってできるはず 第3回 「そこまでやるか」のクリッカブル・マップもどき
第1回 簡単な見出しカラーを付ける 第2回 グラフだってできるはず 第3回 「そこまでやるか」のクリッカブル・マップもどき
 左のように見ると、普通のクリッカブルマップですが、実際は、右の図のように、同じサイズのイメージを縦横3×3に並べたTABLEに過ぎません。
 リンクしているのは、1〜3までですが、もちろん、これを全部リンクさせることもできます。また、わかりやすいように、1〜9までの数字を表示して単純化していますが、そんなのは、なくてもかまわないものですし、全部が同じサイズの図版である必要性もありません。任意の大きさのイメージを、つなぎ目がわからないように分割し、それぞれのサイズにあわせて、TABLEを作成すれば、もっと自由な形のクリッカブルマップも可能です。
 もちろん弱点もあって、それぞれのイメージは、四角形でなくてはならないので、丸い部分だけをリンクさせるといったワザはできません。
 加えて、図版をリンクしたいように区切って切り取るのが、けっこう難儀な作業のように思えるかもしれませんが、CorelやMicrografxの製品がサポートしているオブジェクト・レイヤーの機能を使えば、それほど大した労力ではありません。
 とりあえず、ソースを見てください。タグ自体は、とんでもなく簡単なものです。イメージの分割ができた時点で、作業はほとんど完了したも同然だということが、わかるでしょう。
<TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0">
<TR>
	<TD><A HREF="tbl_i01.htm">
	<IMG SRC="../image/table11.gif" BORDER="0" WIDTH="33" HEIGHT="33"
	 ALT="第1回 簡単な見出しカラーを付ける"></A>
		</TD>
	<TD><A HREF="tbl_i02.htm">
	<IMG SRC="../image/table12.gif" BORDER="0" WIDTH="33" HEIGHT="33"
	 ALT="第2回 グラフだってできるはず"></A>
		</TD>
	<TD><A HREF="tbl_i03.htm">
	<IMG SRC="../image/table13.gif" BORDER="0" WIDTH="33" HEIGHT="33"
	 ALT="第3回 「そこまでやるか」のクリッカブル・マップもどき"></A>
		</TD>
	</TR>
<TR>
	<TD><IMG SRC="../image/table14.gif" BORDER="0" WIDTH="33" HEIGHT="33"></TD>
	<TD><IMG SRC="../image/table15.gif" BORDER="0" WIDTH="33" HEIGHT="33"></TD>
	<TD><IMG SRC="../image/table16.gif" BORDER="0" WIDTH="33" HEIGHT="33"></TD>
	</TR>
<TR>
	<TD><IMG SRC="../image/table17.gif" BORDER="0" WIDTH="33" HEIGHT="33"></TD>
	<TD><IMG SRC="../image/table18.gif" BORDER="0" WIDTH="33" HEIGHT="33"></TD>
	<TD><IMG SRC="../image/table19.gif" BORDER="0" WIDTH="33" HEIGHT="33"></TD>
	</TR>
</TABLE>
 「チップヘルプの表示されるIEのユーザは、それでいいだろうけど、NNはちょいと行き先が分かりにくいんじゃない?」というご意見もございましょう。はいはい、ちゃんと対応策を考えております。
 TABLEタグと言っておきながら、ちょっと反則なのですが、JavaScriptを仕込んでおけば、なんとか解決できるのです。
 まず、下のJavaScriptをファイルの頭にでも入れておきます。
第1回 簡単な見出しカラーを付ける 第2回 グラフだってできるはず 第3回 「そこまでやるか」のクリッカブル・マップもどき
<SCRIPT LANGUAGE = "JavaScript">
<!--
function message(txt){
        window.status = txt;
        setTimeout("remove()",5000);
        }
function remove(){
        window.status="";
        }
// -->
</SCRIPT>
 あとは、リンクさせているところに、「マウスがきたら、ウィンドウのステイタスバーにメッセージを表示する」という指示を入れます。これで、画面下部に、リンク先のメッセージがちょっとの間表示されるようになります。表示時間は、現在、setTimeout("remove()",5000)になっていますから、この数値を調節すればいいでしょう。
 マップの1〜3の部分にマウスを持っていってみてください。メッセージが表示されましたか? もちろん、そのメッセージは、個々のリンクで、指定せねばなりません。
 先のリストの頭の部分だけを以下のように変更するのです。

<TR>
	<TD><A HREF="tbl_i01.htm" onMouseOver="message(
	'第1回 簡単な見出しカラーを付ける');return true;">
	<IMG SRC="../image/table11.gif" BORDER="0" WIDTH="33" HEIGHT="33"
	 ALT="第1回 簡単な見出しカラーを付ける"></A>
	 	</TD>
	<TD><A HREF="tbl_i02.htm" onMouseOver="message(
	'第2回 グラフだってできるはず');return true;">
	<IMG SRC="../image/table12.gif" BORDER="0" WIDTH="33" HEIGHT="33"
	 ALT="第2回 グラフだってできるはず"></A>
	 	</TD>
	<TD><A HREF="tbl_i03.htm" onMouseOver="message(
	'第3回 「そこまでやるか」のクリッカブル・マップもどき');return true;">
	<IMG SRC="../image/table13.gif" BORDER="0" WIDTH="33" HEIGHT="33"
	 ALT="第3回 「そこまでやるか」のクリッカブル・マップもどき"></A>
	 	</TD>
	</TR>

 これでできあがりです。……ところがですねえ。これには欠点もあって、NNだと「ああ、そういうものなんだなあ」とか思えるのですが、IEだと、チップヘルプもステイタスバー・メッセージも両方表示されてしまい、けっこうしつこいカンジがします。NN側が歩み寄ってくれれば、スクリプトも必要ないのでうれしいのですが、なんとなく、ここは、ネットスケープも意固地になって対応しないような気がします。
 さらに、注意をひとつ。
 IEの場合は、問題無いのですが、NN(3.0b6)でTABLEタグを書く場合、可読性を考えて、TABを使って字下げをおこなったリスト表記を行うと、変なコードが入ってしまい、せっかくのマップに妙な間隔が入ってしまいます。
 TABLEタグのリストを書く場合、<TD>〜</TD>の間は、TABによる字下げを行わずに、つなげて書いておいた方が無難でしょう。ま、これは、いずれ解決されるかと思われます。

 それでは、ご質問、ご要望、ご指摘をよろしく。