基本のポップオーバーを作る方法
基本のポップオーバーを作る方法を紹介します。このサンプルでは、ボタンをクリックすると補足情報を表示し、もう一度クリックすると閉じるシンプルなポップオーバーをHTML・CSS・JavaScriptで実装します。画面遷移を行わずに必要な情報だけを表示できるため、説明文や注意事項、補足情報などをコンパクトに表示したい場面で便利です。
管理画面のヘルプ表示、お問い合わせフォームの入力補足、ECサイトの商品説明、会員サイトの設定画面など、必要な情報だけを一時的に表示したい場面で活用できます。ポップオーバーはボタンの近くへ表示されるため、利用者は現在の画面を離れることなく内容を確認できます。クリック操作だけで開閉できるため、初心者にも分かりやすいUIとして利用できます。
タイトル、説明文、ボタンの文字、ポップオーバー内の文章はHTMLから変更でき、CSSでは背景色、文字色、余白、角丸、影、横幅などを調整できます。JavaScriptはポップオーバーの開閉処理のみを担当しているため、シンプルな構成で導入しやすく、レスポンシブにも対応した基本的なポップオーバーのサンプルとして利用できます。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。
デモ
ボタンをクリックするとポップオーバーが表示されます。
ボタンをクリックすると、ボタンの下にポップオーバーが表示されます。もう一度クリックすると閉じます。
コードをコピーして使おう!
<!DOCTYPE html>
<html lang="ja">
<head>
<!-- 文字コード -->
<meta charset="UTF-8">
<!-- スマートフォン対応 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- ページタイトル -->
<title>基本のポップオーバー</title>
<!-- CSSファイル -->
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- ポップオーバー全体 -->
<div class="basic-popover_wrap">
<!-- タイトル -->
<div class="basic-popover_title">
基本のポップオーバー
</div>
<!-- 説明文 -->
<p class="basic-popover_text">
ボタンをクリックするとポップオーバーが表示されます。
</p>
<!-- ボタンとポップオーバー -->
<div class="basic-popover_area">
<!-- 表示ボタン -->
<button
class="basic-popover_button"
id="basic-popover-button"
type="button">
ポップオーバーを表示
</button>
<!-- ポップオーバー -->
<div
class="basic-popover_popup"
id="basic-popover-popup">
こちらは基本的なポップオーバーです。補足情報や説明文を表示できます。
</div>
</div>
</div>
<!-- JavaScriptファイル -->
<script src="script.js"></script>
</body>
</html>
コードをコピーする場合 使用するコードのタブを選び、「このタブをコピー」をクリックすると、現在表示中のコードをコピーできます。 サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。
Q ダウンロードしたけど、これをネット上で動かすにはどうするの?
Googleアカウントがあれば、InfinityFreeで無料サーバーを作成して、ダウンロードしたサンプルをネット上で動かせます。
InfinityFreeを初めて利用する場合は①から、すでにサーバーを作成している場合は②へ進んでください。
ファイル構成と設置方法
このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLではポップオーバーを表示するボタンと補足情報を作成し、CSSではボタンのデザインやポップオーバーの位置、横幅、余白、吹き出し部分などを設定します。JavaScriptではボタンのクリックを検知し、ポップオーバーの表示・非表示を切り替えます。
sample/
├── index.html
├── style.css
└── script.js
各ファイルの役割
index.htmlはポップオーバー全体を構成するファイルです。「基本のポップオーバー」のタイトル、説明文、表示ボタン、ポップオーバー内の文章を変更できます。
style.cssはポップオーバー全体と表示ボタンのデザインを設定するファイルです。全体の横幅や余白、ボタンの大きさや色、ポップオーバーの横幅、表示位置、背景色、枠線、角丸、影などを変更できます。ポップオーバー上部の三角形もCSSの疑似要素で作成しています。
script.jsはポップオーバーの表示・非表示を切り替えるファイルです。表示ボタンをクリックするとshowクラスを付け外しし、ポップオーバーを表示または非表示にします。
設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを配置します。3つのファイルを同じ階層へ保存したあと、sample/index.htmlをブラウザで開いてください。index.htmlからstyle.cssとscript.jsを読み込む構成になっています。「ポップオーバーを表示」ボタンをクリックするとボタンの下へポップオーバーが表示され、もう一度クリックすると非表示になります。
カスタマイズできる内容
index.htmlでは「基本のポップオーバー」のタイトル、説明文、ボタンの文字、ポップオーバー内に表示する文章を変更できます。用途に合わせて、補足説明、操作案内、注意事項などの内容へ変更できます。
style.cssでは全体の最大横幅や余白、ボタンの背景色や文字色、角丸、ポップオーバーの表示位置、横幅、内側余白、背景色、枠線、角丸、影などを変更できます。また、ポップオーバー上部に表示している三角形の大きさや位置も調整できます。
数値調整
style.css
max-width:700px;
ポップオーバー全体の最大横幅です。値を大きくすると全体が横に広がり、小さくするとコンパクトになります。
margin:40px auto 220px;
ポップオーバー全体の外側余白です。40pxを変更すると上側の余白が変わり、220pxを変更するとポップオーバーを表示するために確保する下側の余白が変わります。
padding:32px;
ポップオーバー全体の内側余白です。値を大きくすると内容と枠線の間隔が広がり、小さくすると狭くなります。
border-radius:18px;
ポップオーバー全体の角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。
font-size:22px;
タイトルの文字サイズです。値を大きくするとタイトルが大きくなり、小さくすると小さくなります。
padding:14px 28px;
表示ボタンの内側余白です。14pxを変更すると上下方向、28pxを変更すると左右方向の余白が変わり、ボタンの大きさを調整できます。
border-radius:10px;
表示ボタンの角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。
font-size:16px;
表示ボタンの文字サイズです。値を大きくすると文字が大きくなり、小さくすると小さくなります。
top:calc(100% + 18px);
ボタンとポップオーバーの間隔です。18pxを大きくするとボタンから下方向へ離れ、小さくするとボタンへ近づきます。
width:300px;
ポップオーバーの横幅です。値を大きくすると横に広がり、小さくするとコンパクトになります。
padding:18px;
ポップオーバーの内側余白です。値を大きくすると文章と枠線の間隔が広がり、小さくすると狭くなります。
border-radius:12px;
ポップオーバーの角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。
box-shadow:0 12px 30px ...
ポップオーバーの影です。12pxを変更すると影の縦方向の位置が変わり、30pxを変更すると影のぼかし範囲が変わります。
top:-8px;
吹き出しの三角形を配置する上下位置です。値を変更するとポップオーバー上端に対する三角形の位置が変わります。
width:16px;・height:16px;
吹き出しの三角形を作る疑似要素の大きさです。値を大きくすると三角形が大きくなり、小さくすると小さくなります。
レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%とmax-width:700pxによって、画面幅に合わせて全体の横幅が縮小されます。また、640px以下では全体の内側余白を24px 18px、下側の余白を240px、ポップオーバーの横幅を260pxへ変更しているため、スマートフォン・タブレット・PCで利用できます。
コメント