jQuery で、イメージマップのロールオーバーを変化させる
このサンプルは、jQueryベースの「ImageMapster」というプラグインを使っています。
画像を最低2種類(ノーマル、ロールオーバー用)だけ用意すれば良いので簡単です。
「九州」のみ、リンクを外部サイトにしています。(他はこのページの下部にリンク)
★イメージマップは本来「target="_blank"」が設定できますが、「ImageMapster」を使うと無効になるようです...。
このサンプルは「リンクできない」というご指摘をいただき、ソースを修正しました。
ご迷惑をおかけした方々、申し訳ございませんでした。
解決のソースを送信してくださった中村様、ありがとうございました!!
以前のソースはこちら。
ロールオーバーで japan2.gif に変化し、クリックで japan3.gif に変わるというものでした。
<script>
$(document).ready(function ()
{
$('#shape1').mapster({
singleSelect : true,
render_highlight : { altImage : 'image/japan2.gif' },
mapKey: 'region',
fill : true, altImage : 'image/japan3.gif',
fillOpacity : 1,
});
});
</script>
</body>
今回のソースはこちら。
リンクするには、6行目の「clickNavigate : true」が必要でした。
リンク先へ飛ぶと、クリック後に変化する japan3.gif は不用なので使用しません。
<script>
$(document).ready(function ()
{
$('#shape1').mapster({
singleSelect : true,
clickNavigate : true,
render_highlight : { altImage : 'image/japan2.gif' },
mapKey: 'region',
fillOpacity : 1,
});
});
</script>
</body>
「ImageMapster」の詳しい使い方は、このあと↓
サンプルではこの2種類の画像を用意しました。
以下は要所の抜粋です。(HTMLソース全体は、ブラウザの「ページのソース」などで確認してください)
<!DOCTYPE html>
<html lang="ja">
<head>
<!--略-->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script src="js/jquery.imagemapster.js"></script>
</head>
<body>
<p>
<img src="image/japan1.gif" alt="日本地図" usemap="#shape1" id="shape1">
</p>
<map name="shape1">
<area shape="poly" coords="<!--略-->" href="#" alt="北海道" region="hokkaido">
<area shape="poly" coords="<!--略-->" href="#" alt="東北" region="tohoku">
<!--略( area要素で全てのエリアを指定します)-->
</map>
<script>
$(document).ready(function ()
{
$('#shape1').mapster({
singleSelect : true,
clickNavigate : true,
render_highlight : { altImage : 'image/japan2.gif' },
mapKey: 'region',
fillOpacity : 1,
});
});
</script>
</body>
または、このサイトの「ド初心者用(absolute beginners)」ページで「zip archive」をダウンロードすると、
「scripts」フォルダの中に「jquery.imagemapster.js」が入ってます。ここからゲットしたほうが簡単。分かりやすい解説もあります。
★このサンプルは、ビギナーズファイルの5番目(beginner5.htm)のソースを参考にしています。
(=Linking to an external page/website.(他のページやサイトへのリンク))
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script src="js/jquery.imagemapster.js"></script>
1行目は、「jQuery」を読み込んでいます。
jQueryサイトでダウンロードして自分のサーバ上に置いても良いのですが、上の方法は、googleが提供しているサービスで、 jQuery を google経由で読み込む方法。
2行目は、先ほどダウンロードして保存した「jquery.imagemapster.js」のURLを指定します。
<img src="image/japan1.gif" alt="日本地図" usemap="#shape1" id="shape1">
usemap属性でイメージマップの名前を指定。 id属性でid名も指定します。idは後で使うので必須。
<map name="shape1">
<area shape="poly" coords="<!--略-->" href="#hokkaido" alt="北海道" region="hokkaido">
<area shape="poly" coords="<!--略-->" href="#tohoku" alt="東北" region="tohoku">
<!--略( area要素で全てのエリアを指定します)-->
<!--AREA for text-->
<area shape="rect" coords="132,30,209,48" href="#hokkaido" alt="北海道" region="hokkaido">
<area shape="rect" coords="132,58,209,76" href="#tohoku" alt="東北" region="tohoku">
<!--別の領域も、同じ「region (mapKey)」の値にすれば反応します-->
</map>
「mapkey (マップキー)」というキーワードを決めます。(ここでは region にしています)
<script>
$(document).ready(function ()
{
$('#shape1').mapster({
singleSelect : true,
clickNavigate : true,
render_highlight : { altImage : 'image/japan2.gif' },
mapKey: 'region',
fillOpacity : 1,
});
</script>
4行目に、<img>につけたid名(ここではイメージマップと同じ名前の shape1 にしました)を書きます。コレ重要。「ImageMapster」は、上記のように、ロールオーバー時に領域の画像を変化させるだけでなく、他にもいろいろなエフェクトがあります。詳しくは「ImageMapster」サイトをご覧ください。
以下は、リンク先のテキスト。
北海道
(ページトップに戻る)
東北
(ページトップに戻る)
関東
(ページトップに戻る)
中部
(ページトップに戻る)
近畿
(ページトップに戻る)
中国
(ページトップに戻る)
四国
(ページトップに戻る)
九州のリンクは外部サイト