| 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パラメータで、コメントを付けていれば、チップヘルプが表示されますから、安心です。
左のように見ると、普通のクリッカブルマップですが、実際は、右の図のように、同じサイズのイメージを縦横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をファイルの頭にでも入れておきます。
|
|
<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による字下げを行わずに、つなげて書いておいた方が無難でしょう。ま、これは、いずれ解決されるかと思われます。
それでは、ご質問、ご要望、ご指摘をよろしく。