横浜のITサポート・WEB制作会社

Webサイト制作

WordPressの使い方を知りたい!

Windows

パソコンのトラブル解決方法を知りたい!

Office365

Office365でできることを知りたい!

アプリ

便利なアプリを知りたい!

h

すべての記事

人気記事TOP15

タグ一覧

会社情報

採用情報

お問い合わせ

画像の特定部分にレスポンシブ対応したリンクを設定してクリックできるようにする方法

2023/08/21 | WEBデザイン

こんにちは。

今回は、WEBページに表示した画像の特定の部分にレスポンシブ対応のリンクを設定してクリックできるようにする方法をご紹介します。

クリックできる画像のサンプル

文章で「画像の特定部分にレスポンシブ対応したリンクを設定してクリックできるようにする」と言ってもなかなかピンとこないかもしれないの、まずはこちらよりそのサンプルをご覧ください

コードの全体像

以下が上記のサンプルを構成するHTMLです。

<!DOCTYPE html>
<html lang="ja">

<head>
	<meta charset="UTF-8">
	<title>ImageMapのデモ</title>
	<!-- Start ImageMapのレスポンシブ設定 -->
	<script src="https://cdnjs.cloudflare.com/ajax/libs/image-map-resizer/1.0.10/js/imageMapResizer.min.js"></script>
	<script>imageMapResize();</script>
	<!-- End ImageMapのレスポンシブ設定 -->
</head>

<body>
	<ul>
		<li>グレー部分が1枚の画像です</li>
		<li>青色の部分がクリックできます</li>
	</ul>
	<!-- Start 画像の表示 -->
	<img src="./sample.png" usemap="#sampleImageMap" alt="ImageMapのサンプル" />
	<!-- End 画像の表示 -->
	<!-- Start ImageMapの設定 -->
	<map name="sampleImageMap">
		<area shape="rect" coords="92,536,404,707" href="https://www.kaname-gh.co.jp/company/" alt="会社情報" />
		<area shape="circle" coords="306,278,200" href="https://www.kaname-gh.co.jp/website-production-plan/" alt="WEB制作" />
		<area shape="poly" coords="601,267,462,705,740,707,740,707" href="https://www.kaname-gh.co.jp/recruit/" alt="採用情報" />
	</map>
	<!-- End ImageMapの設定 -->
</body>

</html>

map要素でイメージマップ(クリックできる部分)を設定

...
	<map name="sampleImageMap">
		<area shape="rect" coords="92,536,404,707" href="https://www.kaname-gh.co.jp/company/" alt="会社情報" />
		<area shape="circle" coords="306,278,200" href="https://www.kaname-gh.co.jp/website-production-plan/" alt="WEB制作" />
		<area shape="poly" coords="601,267,462,705,740,707,740,707" href="https://www.kaname-gh.co.jp/recruit/" alt="採用情報" />
	</map>
...

map要素のname属性にそのイメージマップの名前を設定し、area要素でクリックできる部分を定義します。

上記のサンプルでは次のとおりarea要素を設定しています。

  • shape属性:クリックできる部分の形
  • coords属性:クリックできる部分の座標
  • href属性:リンク先のURL
  • alt属性:代替テキスト

イメージマップジェネレーターを使うと、area要素を正確に設定することが可能です。

img要素のusemap属性でイメージマップの設定を反映

...
	<img src="./sample.png" usemap="#sampleImageMap" alt="ImageMapのサンプル" />
...

img要素のusemap属性にmap要素のname属性を「#」つきで記載することで、その画像のイメージマップが反映されます。

ImageMapEesizer.jsでイメージマップをレスポンシブ対応に設定

上記までで「画像の特定部分にリンクを設定してクリックできるようにする」ことは可能です。

しかし、スマートフォンでWEBページが閲覧されたときにイメージマップの設定がズレてしまい、意図しない部分にリンクが設定されることがあります。

それを防ぐため、イメージマップをレスポンシブ対応させておきます。

...
	<script src="https://cdnjs.cloudflare.com/ajax/libs/image-map-resizer/1.0.10/js/imageMapResizer.min.js"></script>
	<script>imageMapResize();</script>
...

ImageMapResizer.jsを読み込み、imageMapResize()を実行します。

ITサポート・ホームページ制作はお任せください

  • パソコンの動作が遅い・重いと感じる
  • パソコンやスマートフォン、複合機などIT機器を新しく入れ替えたい
  • システム化・クラウド化など業務のIT化・DX化を考えている
  • ホームページを新しく作りたい
  • 古くなったホームページを修正をしてほしい

上記の様なお悩みがありましたらぜひ弊社までお気軽にお問い合わせください!