簡単!クリッカブルマップの作り方

こんにちは、ゆんつです。

クリッカブルマップという言葉をご存じでしょうか?

例えば1枚の日本地図があったとします。

日本地図

この日本地図を県ごとに区切ってリンクを貼ります。

ある県をクリックすると、その県庁のホームページにジャンプ!

そんな感じで、1枚の画像について複数のリンクが設定されたものをクリッカブルマップといいます。

ゆんつ
イメージマップともいうみたいです

今日はこのクリッカブルマップの作り方について書きたいと思います。

必要なもの

クリッカブルマップの元となる画像が必要です。

今回はフリーのイラストサイトから以下の画像をお借りして作業したいと思います。

四国

四国の画像です。

この四国の画像の各県をクリックすると、それぞれの県庁のホームページにつながるようなクリッカブルマップを作りたいと思います。

クリッカブルマップのコードを作成する

クリッカブルマップを作るには「ここからここまでの座標はこのリンク、ここからここまでの座標はこのリンク」といった感じで、リンクを設定する場所の座標を取得してHTMLのareaタグに記述する必要があります。

ゆんつ
めっちゃ難しそう!

と思ってしまいますが、クリッカブルマップを作成するために必要なコードを簡単に作成してくれるサイトがあります。

「Free Online Image Map Generator」というサイトです。

Free Online Image Map Generator

サイトは英語ですが利用するのは難しくありません。

まずサイトにアクセスすると「Select Image from My PC」「Load Image from Website」というボタンがあります。

「Select Image from My PC」は自分のPC内の画像をアップロードして作業します。

「Load Image from Website」はWeb上に存在する画像のURLを入力すると、その画像を「Free Online Image Map Generator」が取得してくれるので、その画像を使って作業することができます。

今回は自分のPC内にある画像を使用したいので「Select Image from My PC」をクリック。

Free Online Image Map Generator

ファイルの選択画面になるので、自分のPC内からクリッカブルマップの元になる画像を選択して「開く」ボタンをクリックします。

Free Online Image Map Generator

画像がアップロードされ作業の準備が整いました。

Free Online Image Map Generator

これからアップロードされた地図と赤枠の部分を利用してクリッカブルマップに必要なコードを作成していきます。

赤枠の部分の各項目について簡単に説明しておきます。

Free Online Image Map Generator

SHAPEというのは座標を取得するための図形の描き方の種類です。

Free Online Image Map Generator
  • Rectは四角形
  • Polyは多角形
  • Circleは円形

となります。

Linkには設定した座標に対するリンク先を入力します。

Free Online Image Map Generator

Titleは、ここに入力したものがareaタグのalt属性とtitle属性になります。

Free Online Image Map Generator

TargetはHTMLのtargert属性で、例えば_blankを選択するとリンクをクリックした場合に新しいタブでページが開かれます。

Free Online Image Map Generator

新しいエリアの座標を追加したい場合は「+Add New Area」ボタンをクリックすることで追加することができます。

Free Online Image Map Generator
ゆんつ
それでは実際にやってみましょう!

地図のように形がでこぼこしている図形の座標を取得する場合。

Shapeは「Poly」を選択します。

Polyを選択した状態で画像上でマウスを左クリックすると点が打たれます。

Free Online Image Map Generator

そして次の場所で打つとまた点が打たれ、点と点がつながって線となります。

Free Online Image Map Generator

これを繰り返してリンクを設定したい場所をぐるっと囲みます。

Free Online Image Map Generator

点はドラッグすることで動かすことができるので微調整も可能です。

ぐるっと囲み終わったら、その場所にふさわしいリンクとTitleを設定(必要に応じてTargetも設定します)。

Free Online Image Map Generator

リンクを複数設定する場合には「+Add New Area」ボタンをクリックして再度新しいエリアを設定します。

Free Online Image Map Generator

この作業を必要なリンクの数だけ繰り返します

全てのリンクの設定が終わったら「Show Me The Code!」ボタンをクリック。

Free Online Image Map Generator

表示されたコードをHTMLのクリッカブルマップを表示させたい箇所にまるっとコピペすれば作業完了!

Free Online Image Map Generator

実際の作業を動画にしてみましたので、興味がありましたらご覧ください(無音)

座標の指定がとても雑ですが(笑)、このような感じの作業になります。

デモページも作成したので、下記のリンクからご確認ください。

クリッカブルマップのデモ

クリッカブルマップをレスポンシブ対応させる

モバイル環境などで画面が小さくなると、画像が画面のサイズに合わせて縮小されます。

そうなると、クリッカブルマップになにも対策していない場合には画像は小さくなるのに座標はそのままなので画像と座標がずれて合わなくなってきます。

先ほどのデモはレスポンシブ対策を施していません。

ですので画面サイズを小さくしていくと以下のような感じで、座標と画像が乖離し愛媛県へのリンクは地図の外にあるような形となってしまいます。

座標と画像のずれ

このようなレスポンシブ対応に関する問題も「jQuery-rwdImageMaps」というjQueryのライブラリーを使うことで簡単に解決できます。

https://github.com/stowball/jQuery-rwdImageMapsにアクセスします。

「Code」というボタンをクリックして「Download Zip」をクリックしてファイルをダウンロードします。

jQuery-rwdImageMaps

ダウンロードしたファイルを解凍するといくつかのファイルが入っているので、その中から「jquery.rwdImageMaps.js」又は「jquery.rwdImageMaps.min.js」のどちらかをコピーしてJavaScriptを設置するフォルダに貼り付けます。

jQuery-rwdImageMaps

例えば、こんな感じのファイル構成にしてみます。

jQuery-rwdImageMaps

</body>タグの直前でjQueryを読み込ませて、そのあとにjquery.rwdImageMaps.min.jsを読み込ませる形にします。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="jquery.rwdImageMaps.min.js"></script>

そして以下のようなjQueryのコードを記述します。

$(function() {
  $('img[usemap]').rwdImageMaps();
})

たったこれだけで、画像の伸縮しても座標がずれなくなります!

ゆんつ
簡単!

デモを作ったので、もしよかったらウィンドウを伸縮して試してみてください。

レスポンシブ対応したクリッカブルマップのデモ

線を消す

ブラウザがChromeやEdgeの場合は、クリッカブルマップをクリックした瞬間に以下の画像のような感じでリンクを設定しているエリアが黒線で表示されてしまします。

黒い枠線

これを消す場合にはCSSで

area {
  border:none;
  outline:none;
}

とします。

これによりクリックしたときにエリアを囲む枠線が出なくなります。

クリック時の枠線が消えるクリッカブルマップのデモ

頭の片隅に置いておくといいかも

以上がクリッカブルマップの作り方です。

クリッカブルマップが作れるようになれば1枚の画像から複数の個所に簡単にリンクを貼ることができるようになります。

頻繁に使う技術ではなないかもしれませんが、頭の片隅にでも置いておくと役に立つことがあるかもしれません。

何かの参考になれば幸いです。

ゆんつ
それでは、またー