Googleマップをツールチップに表示する方法
Googleマップをツールチップに表示する方法を紹介します。このサンプルでは、「地図を確認」ボタンへマウスカーソルを合わせるとツールチップが開き、その中にGoogleマップをiframeで表示します。基本のツールチップと同じようにCSSの:hoverを利用して表示・非表示を切り替えるため、JavaScriptを使用せずHTMLとCSSだけで実装できます。
店舗案内、会社概要、施設紹介、イベント会場へのアクセスなど、ページ内へ地図を常時大きく表示せず、必要なときだけ場所を確認できるようにしたい場合に利用できます。通常時はGoogleマップを非表示にしておき、ボタンへマウスカーソルを合わせたときだけツールチップとして表示するため、ページ内のスペースを抑えながらアクセス情報を案内できます。
HTMLではタイトル、説明文、ボタンの文章、Googleマップの埋め込みURLを変更できます。CSSではツールチップの横幅、高さ、余白、背景色、角丸、ボタンとの間隔、表示切り替え時間などを調整できます。画面幅が狭い場合はツールチップの横幅と地図の高さを調整するため、スマートフォン・タブレット・PCの画面幅に合わせて利用できます。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
デモ
ボタンへマウスカーソルを合わせるとGoogleマップを表示します。
「地図を確認」へマウスカーソルを合わせると、ツールチップ内にGoogleマップが表示されます。カーソルを外すと自動で非表示になります。
コードをコピーして使おう!
<!DOCTYPE html>
<html lang="ja">
<head>
<!-- 文字コード -->
<meta charset="UTF-8">
<!-- スマートフォン対応 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- ページタイトル -->
<title>Googleマップをツールチップに表示する方法</title>
<!-- CSSファイル -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- Googleマップツールチップ全体 -->
<div class="google-map-tooltip_wrap">
<!-- タイトル -->
<div class="google-map-tooltip_title">
Googleマップをツールチップで表示
</div>
<!-- 説明文 -->
<p class="google-map-tooltip_text">
ボタンへマウスカーソルを合わせるとGoogleマップを表示します。
</p>
<!-- ツールチップ表示エリア -->
<div class="google-map-tooltip_area">
<!-- Googleマップを表示するボタン -->
<button class="google-map-tooltip_button" type="button">
地図を確認
</button>
<!-- Googleマップを表示するツールチップ -->
<div class="google-map-tooltip_message">
<!-- Googleマップ表示エリア -->
<div class="google-map-tooltip_frame">
<!--
【Googleマップの埋め込みURLの設定方法】
1. Googleマップで表示したい場所を検索します。
2. 「共有」をクリックします。
3. 「地図を埋め込む」を選択します。
4. 「HTMLをコピー」をクリックします。
5. コピーしたiframeコード内の
src="..." に記載されているURLを使用します。
6. 下記の YOUR_GOOGLE_MAP_EMBED_URL を、
取得した埋め込みURLへ置き換えてください。
この実装ではGoogle Maps JavaScript APIを使用しないため、
APIキーやMap IDを設定する必要はありません。
-->
<iframe
src="YOUR_GOOGLE_MAP_EMBED_URL"
title="Googleマップ"
loading="lazy"
referrerpolicy="no-referrer-when-downgrade">
</iframe>
</div>
</div>
</div>
</div>
</body>
</html>
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。
ファイル構成と設置方法
このサンプルはHTML・CSSの2ファイルで構成されています。HTMLでは「地図を確認」ボタン、ツールチップ、Googleマップを表示するiframeを配置し、CSSではツールチップの位置や大きさ、表示・非表示、Googleマップの表示領域などを設定します。JavaScriptや外部ライブラリは使用せず、CSSの:hoverを利用してマウスカーソルを合わせたときにツールチップを表示します。
Googleマップの表示には、Googleマップの「地図を埋め込む」から取得できる埋め込みURLを使用します。このサンプルではGoogle Maps JavaScript APIは使用しないため、APIキーやMap IDは必要ありません。利用者自身で表示したい場所の埋め込みURLを取得し、index.html内のYOUR_GOOGLE_MAP_EMBED_URLへ設定します。
Googleマップ自体をZIPへ含める必要はありません。index.htmlのiframeからGoogleマップの埋め込みURLを読み込む構成になっているため、ZIPへ含まれるのはindex.htmlとstyle.cssだけです。
sample/
├── index.html
└── style.css
各ファイルの役割
index.htmlはGoogleマップツールチップ全体を構成するファイルです。「Googleマップをツールチップで表示」のタイトル、説明文、「地図を確認」ボタン、ツールチップ、Googleマップを表示するiframeを記述しています。表示する場所を変更する場合は、iframeのsrc属性にあるYOUR_GOOGLE_MAP_EMBED_URLを、利用者自身で取得したGoogleマップの埋め込みURLへ置き換えます。
style.cssはGoogleマップツールチップのデザインと表示動作を設定するファイルです。全体の横幅や余白、ボタンの色や角丸、ツールチップの横幅・位置・背景色、Googleマップ表示エリアの高さなどを変更できます。また、:hoverを使用して、ボタンを含む表示エリアへマウスカーソルを合わせたときにツールチップを表示します。画面幅640px以下では、ツールチップとGoogleマップ表示エリアのサイズを調整します。
設置方法・使い方
sampleフォルダへindex.htmlとstyle.cssを配置します。次に、ツールチップへ表示したい場所のGoogleマップ埋め込みURLを取得します。Googleマップで表示したい場所を検索し、「共有」を開いて「地図を埋め込む」を選択します。「HTMLをコピー」からiframe形式の埋め込みコードを取得し、そのコード内にあるsrc="..."のURL部分を使用します。
取得した埋め込みURLを、index.html内の次のYOUR_GOOGLE_MAP_EMBED_URLへ設定します。
src="YOUR_GOOGLE_MAP_EMBED_URL"
YOUR_GOOGLE_MAP_EMBED_URLはGoogleマップから取得した埋め込みURLを表すプレースホルダーです。コピーしたiframe全体をこの場所へ貼り付けるのではなく、iframeのsrc属性に設定されているURLだけを取り出して置き換えます。設定後にsample/index.htmlをブラウザで開き、「地図を確認」ボタンへマウスカーソルを合わせると、Googleマップがツールチップ内へ表示されます。カーソルを表示エリアから外すとツールチップは非表示になります。
カスタマイズできる内容
index.htmlではタイトル、説明文、「地図を確認」ボタンの文章、iframeのtitle、表示するGoogleマップの埋め込みURLを変更できます。別の場所を表示したい場合は、その場所の埋め込みURLをGoogleマップから取得し、YOUR_GOOGLE_MAP_EMBED_URLを新しいURLへ置き換えます。
style.cssではサンプル全体の最大横幅や余白、背景色、ボタンの色やサイズ、ツールチップの横幅、ボタンとの間隔、背景色、角丸、Googleマップ表示エリアの高さ、表示切り替え時間などを変更できます。
数値調整
style.css
max-width:700px;
サンプル全体の最大横幅です。値を大きくすると全体が横に広がり、小さくするとコンパクトになります。
margin:40px auto;
サンプル全体の上下余白です。40pxを大きくすると上下の間隔が広がり、小さくすると狭くなります。
padding:32px;
サンプル全体の内側余白です。値を大きくすると内容と外枠の間隔が広がります。
border-radius:18px;
サンプル全体の角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。
font-size:22px;
タイトルの文字サイズです。値を大きくするとタイトルが大きくなります。
padding:14px 30px;
「地図を確認」ボタンの内側余白です。14pxは上下、30pxは左右の余白を表します。値を大きくするとボタンが大きくなります。
border-radius:10px;
ボタンの角丸です。値を大きくするとボタンの丸みが強くなります。
bottom:calc(100% + 14px);
ボタンとツールチップの間隔です。14pxを大きくするとツールチップがボタンから上方向へ離れます。
width:520px;
ツールチップの基本横幅です。値を大きくするとGoogleマップの表示領域が横に広がり、小さくすると狭くなります。
padding:14px;
ツールチップ内部の余白です。値を大きくするとGoogleマップとツールチップ外周との間隔が広がります。
border-radius:12px;
ツールチップの角丸です。値を大きくすると丸みが強くなります。
transition:opacity .3s ease, visibility .3s ease;
ツールチップの表示切り替え時間です。.3sは0.3秒を表します。値を大きくするとゆっくり、小さくすると速く切り替わります。
height:320px;
Googleマップ表示エリアの通常時の高さです。値を大きくすると地図を表示する範囲が高くなり、小さくすると低くなります。
border-radius:8px;
Googleマップを表示するiframe部分の角丸です。値を大きくすると丸みが強くなります。
@media (max-width:640px)
スマートフォン向けのスタイルへ切り替える基準となる画面幅です。このサンプルでは640px以下で全体の内側余白、ツールチップの横幅、Googleマップ表示エリアの高さを変更します。
height:260px;
画面幅640px以下で使用するGoogleマップ表示エリアの高さです。値を変更するとスマートフォン表示時の地図表示領域の高さが変わります。
レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%とmax-width:700pxによって、画面幅に合わせてサンプル全体が縮小されます。ツールチップにはmax-width:calc(100vw - 48px)を指定しており、画面幅を超えて横方向へ広がりにくい構成です。Googleマップを表示するiframeにもwidth:100%とheight:100%を指定しているため、親要素の表示領域に合わせて地図が表示されます。
さらに画面幅640px以下では、全体の内側余白を24px 18px、ツールチップの横幅をcalc(100vw - 64px)、Googleマップ表示エリアの高さを260pxへ変更します。これにより、スマートフォン・タブレット・PCの画面幅に合わせてGoogleマップのツールチップを表示できます。
コメント