- - PR -
【JavaScript】クリッカブルマップ+ロールオーバー
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-07-28 15:52
お世話になっております。
現在、以下のような挙動をするWebページを作成しています。 1)画像の一部にカーソルを当てると、指定箇所に違う画像が表示される 2)画像の一部をクリックすると、別のクリッカブルマップが表示される イメージとしては、以下のサイトの「地図から探す」です。 地図情報検索:マピオン(http://www.mapion.co.jp/) ここで、1)に関してご教授いただきたく思います。 私が現在実現させているのは、たとえば 日本地図(A.gif)の東京部分にカーソルを当てる →日本地図(A.gif)の東京部分だけ違う色で塗り変えた画像(A_.gif)を表示する といった方法です。 これを、 日本地図(A.gif)の東京部分にカーソルを当てる →日本地図(A.gif)の東京部分を、東京部分だけの画像(A_tokyo.gif)に差し替えて表示する といった方法で実現したいのです。 ※東京部分だけの画像(A_tokyo.gif)は、日本地図(A.gif)の東京以外の部分を透過GIFにしており、東京都の位置座標は両画像とも同じです。 座標が同じなので、座標を指定して差し替えができないだろうか、 透過GIFなので画像A.gifに画像A_tokyo.gifを重ねられないだろうか、など、 自分なりに考えてみたのですが、いまいち方法がつかめません。 アドバイスがありましたら、ぜひお願いいたします。 以下、現在のソースです。 <html> <head> <title>クリッカブルマップ</title> <meta http-equiv="Content-Type" content="text/html; charset=shift-jis"/> <script language="JavaScript"> <!-- //フォーカスon function f(kind) { switch(kind){ case 0: document.images["japan_map"].src="image/A_.gif";//東京部分だけ色の違う日本地図 break; default: break; } } //フォーカスoff function unf(kind) { switch(kind){ case 0: document.images["japan_map"].src="image/A.gif";//日本地図 break; default: break; } } //クリッカブルマップの変更 function c(kind) { switch(kind){ case 0: break; case 1://東京都のクリッカブルマップに変更 wl(0); document.images["japan_map"].src="image/tokyo_all.gif"; document.images["japan_map"].useMap="#tokyo_all"; break; default: break; } } --> </script> </head> <body> <center> </div> <div id="link"><br></div> <img src="image/A.gif" width=608 height=430 NAME="japan_map" usemap="#japan_all" border=0 > <map name="japan_all"> <area shape="poly" coords="座標" OnMouseOver="f(0)" OnMouseOut="unf(0)" OnClick="c(1)" alt="東京都"> <area /> </map> <map name="tokyo_all"> <area /> <area /> </map> </div> </center> </body> </html> |
|
投稿日時: 2008-08-05 09:57
自己レスです。
逆転?の発想で、こんな方法を思いつきました。 無理矢理感が漂っている気もしますが・・・ ・日本地図(A.GIF)を背景にする。 ・map用画像として、全透過GIFを利用する。 ・背景とmap用画像との間に、ロールオーバー用画像を配置する。 階層は、以下のようになります。 【最前面】全透過GIF 【 B1層】ロールオーバー画像(A_tokyo.GIF) 【最背面】日本地図(A.GIF) <html> <head> <title>クリッカブルマップ</title> <meta http-equiv="Content-Type" content="text/html; charset=shift-jis"/> <script language="JavaScript"> <!-- //フォーカスon function f() { document.getElementById('map_over').innerHTML='<img id="map_over_img" src=\\\\\\\\"A_tokyo.gif\\\\\\\\" width=505 height=295 border=0 style=\\\\\\\\"position:absolute;z-index:-1;top:0px;left:0px;\\\\\\\\">'; } //フォーカスoff function unf(kind) { document.getElementById('map_over').innerHTML=''; } --> </script> </head> <body> <center> </div> <table background="image/A.gif"> <tr><td> <div id="link"><br></div> <!--map用画像には全透過GIFを使用--> <img src="image/touka.gif" width=608 height=430 NAME="japan_map" usemap="#japan_all" border=0 > <div id="map_over"></div> <map name="japan_all"> <area shape="poly" coords="座標" OnMouseOver="f()" OnMouseOut="unf()" OnClick="JavaScript:void(0);" alt="東京都"> <area /> </map> </td></tr> </table> </div> </center> </body> </html> |
1