ボタンクリック(タップ)でメッセージを表示する4つの方法を紹介します。
ダイアログボックス(アラート)
OKボタン付きのダイアログボックスを表示。
アコーディオン
ボタン2がクリックされました!
ボタン下にメッセージを表示。
もう一度ボタンをクリックすると消える。
モーダルウィンドウ
ボタン3がクリックされました!
ボタンをクリックすると画面が暗くなり、画面中央にメッセージを表示。暗い部分をクリックすると元の画面に戻る。
ポップアップウィンドウ
ボタンをクリックすると、画面下からフワッとメッセージが表示される。メッセージは3秒後に消える。
【ボタン1】ダイアログボックス(アラート)を表示する
JavaScriptの標準機能であるalert()関数を使うことで、指定したテキストとOKボタンをもつダイアログボックスを表示します。4つの中ではもっとも簡単に実装できます。
ダイアログボックス alert() confirm() prompt() について
JavaScriptでは、alert(表示させたい内容) と記述することで、画面上部にダイアログを表示できます。表示する内容が文字列の場合、''(シングルクォート)または ""(ダブルクォート)で囲むことを忘れないようにしましょう。
// 変数を使って "Hello" を表示するダイアログボックス
const text = "Hello"; // 変数にメッセージを代入
alert(text); // 変数の値を表示
// 直接 "Hello" を表示するダイアログボックス
alert('Hello'); // 文字列を直接渡す- メリット
-
手軽に実装できる
- デメリット
-
デザインをカスタマイズできない
- 使用シーン
-
簡単な通知(例:エラー表示)
またalert() のほかに、以下の2つのダイアログボックスを表示する関数があります。
confirm()-
ユーザーに「OK」または「キャンセル」を選択させる
prompt()-
ユーザーがテキストを入力できる
詳しくは以下記事で実装例やコードを公開しています。本記事と合わせてご覧ください。
ダイアログのデザイン集もあります。(コピペOKのコード付き)
HTML / CSS / JavaScript コード
<div class="btn-container">
<button id="btn1">ボタン1</button>
</div>.btn-container {
text-align: center;
}
button {
width: 80%;
height: 50px;
font-size: 18px;
font-weight: bold;
/* ボタンにカーソルを当てると、カーソルがポインターに変わる */
cursor: pointer;
}
/* ボタンにカーソルを当てたとき、ボタンを半透明にする */
button:hover {
opacity: 0.7;
}const btn1 = document.getElementById('btn1');
btn1.addEventListener('click', () => {
alert('ボタン1がクリックされました!');
});【ボタン2】ボタン下にメッセージを表示する(アコーディオン or インページ通知)
ボタン下にあらかじめテキストを配置しておき、ボタンのクリックで表示・非表示を切り替えます。この方法を応用し、もっと見るボタンやFAQなどでよく見られる『アコーディオンメニュー』を作ることも可能です。
アコーディオン(インページ通知)の仕組み
- HTML にすべての表示内容を記述し、最初は非表示にしたい要素に適切な
classやidを付与する。 - CSS で、指定した
classやidにdisplay: none;を適用し、初期状態では非表示にする。 - JavaScript を使用し、クリックイベントが発生したときに、該当の
classやidを追加・削除して表示を切り替える。
- メリット
-
ユーザーがクリックページ内のスペースを節約できる
- デメリット
-
ユーザーがクリックしないと見えない
- 使用シーン
-
FAQページや詳細説明の表示
「もっと見る」「よくある質問(FAQ)」などのUIの実装方法は、以下記事で公開しています。
アコーディオンUIのデザイン集もあります。(コピペOKのコード付き)
HTML / CSS / JavaScript コード
<div class="btn-container">
<button id="btn2">ボタン2</button>
<!-- クリックで表示させるテキストにはhiddenクラスを付ける -->
<p id="btn2-text" class="hidden">ボタン2がクリックされました!</p>
</div>.btn-container {
text-align: center;
}
button {
width: 80%;
height: 50px;
font-size: 18px;
font-weight: bold;
/* ボタンにカーソルを当てると、カーソルがポインターに変わる */
cursor: pointer;
}
/* ボタンにカーソルを当てたとき、ボタンを半透明にする */
button:hover {
opacity: 0.7;
}
/* クリックで表示させるテキストを隠す */
.hidden {
display: none;
}
#btn2-text{
margin: 16px 0;
font-size: 14px;
color: red;
}const btn2 = document.getElementById('btn2');
const btn2Text = document.getElementById('btn2-text');
btn2.addEventListener('click', () => {
// ボタンクリックでhiddenクラスを付け外しする
btn2Text.classList.toggle('hidden');
});【ボタン3】画面中央にメッセージを表示する(モーダルウィンドウ)
ボタンに加え、画面を暗くするためのマスクとメッセージウィンドウを用意しておき、ボタンのクリックでそれらを表示します。一般に『モーダルウィンドウ』と呼ばれる方法です。
モーダルウィンドウの仕組み
- HTML に、画面全体を覆う「マスク」と、メッセージを表示する「ウィンドウ」の2つの要素を用意し、それぞれに適切な
classやidを付与する。 - CSS で、
display: none;を適用し、初期状態では非表示にする。 - JavaScript を使用し、特定のボタンがクリックされたときに
classやidを切り替え、モーダルウィンドウを開閉できるようにする。
- メリット
-
ユーザーの注意を引ける
- デメリット
-
実装がやや複雑
- 使用シーン
-
重要な確認メッセージ(例:削除確認)
詳しくは以下記事で実装例やコードを公開しています。本記事と合わせてご覧ください。
モーダルウィンドウのデザイン集もあります。(コピペOKのコード付き)
HTML / CSS / JavaScript コード
<div class="btn-container">
<button id="btn3">ボタン3</button>
</div>
<div id="mask" class="hidden"></div>
<section id="modal" class="hidden">
<p>ボタン3がクリックされました!</p>
</section>- 画面を暗くする
#maskとメッセージウィンドウである#modalを記述しておき、それぞれにクラス属性hiddenを付けておく。
.btn-container {
text-align: center;
}
button {
width: 80%;
height: 50px;
font-size: 18px;
font-weight: bold;
/* ボタンにカーソルを当てると、カーソルがポインターに変わる */
cursor: pointer;
}
/* ボタンにカーソルを当てたとき、ボタンを半透明にする */
button:hover {
opacity: 0.7;
}
.hidden {
display: none;
}
#mask {
background: rgba(0, 0, 0, 0.7);
position: fixed;
top: 0;
bottom: 0;
right: 0;
left: 0;
z-index: 1;
}
#modal {
background: #fff;
width: 50%;
padding: 24px;
border-radius: 4px;
color: red;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
margin: 0 auto;
z-index: 2;
}#maskはposition: fixed;とし、topbottom rightleftをすべて0にすると、マスクの領域(暗い部分)が画面全体に広がる。#modalもposition: fixed;とし、表示位置をtoprightleftで画面中央にくるよう調整。
また、z-indexを一番大きい値(ここでは2)とすることで、メッセージウィンドウが画面の前面にくるようになる。
const btn3 = document.getElementById('btn3');
const mask = document.getElementById('mask');
const modal = document.getElementById('modal');
btn3.addEventListener('click', () => {
mask.classList.remove('hidden');
modal.classList.remove('hidden');
});
mask.addEventListener('click', () => {
mask.classList.add('hidden');
modal.classList.add('hidden');
});- ボタンをクリックすると、マスクとメッセージウィンドウからhiddenクラスが外れて画面に表示される。
- マスク部分(暗い部分)をクリックすると、逆にマスクとメッセージウィンドウにhiddenクラスが追加され、非表示になる。


【ボタン4】画面下からフワッとメッセージを表示する(ポップアップウィンドウ)
画面下にあらかじめメッセージボックスを配置しておき、ボタンクリックでメッセージボックスをフワッと表示します。
ポップアップメッセージの仕組み
ポップアップ表示のような複雑なアニメーションには、CSSプロパティの@keyframesを使います。キーフレーム毎に適用したいCSSプロパティを指定することで、連続したアニメーションを設定できます。
- メリット
-
スタイリッシュで動きがある
- デメリット
-
一定時間後に消えるので見逃す可能性あり
- 使用シーン
-
送信成功メッセージや小さな通知
詳しくは以下記事で実装例やコードを公開しています。本記事と合わせてご覧ください。
ポップアップウィンドウのデザイン集もあります。(コピペOKのコード付き)
HTML / CSS / JavaScript コード
<div class="btn-container">
<button id="btn4">ボタン4</button>
</div>
<p id="btn4-text" class="hidden">ボタン4がクリックされました!</p>.btn-container {
text-align: center;
}
button {
width: 80%;
height: 50px;
font-size: 18px;
font-weight: bold;
/* ボタンにカーソルを当てると、カーソルがポインターに変わる */
cursor: pointer;
}
/* ボタンにカーソルを当てたとき、ボタンを半透明にする */
button:hover {
opacity: 0.7;
}
/* ポップアップメッセージを隠す */
.hidden {
display: none;
}
/* ポップアップメッセージを画面右下に配置 */
#btn4-text {
height: 72px;
padding: 8px 16px;
border-radius: 8px;
background: #ddd;
font-weight: bold;
text-align: center;
line-height: 72px;
position: fixed;
right: 5%;
bottom: 10%;
}
/* ポップアップアニメーションを3秒かけて実行 */
.popup-message {
animation: popup 3s forwards;
}
@keyframes popup {
0% {
transform: translateY(15%);
opacity: 0;
}
10%, 90% {
transform: none;
opacity: 1;
}
100% {
transform: translateY(15%);
opacity: 0;
pointer-events: none;
}
}- @keyframesでpopupというアニメーションを設定。
- 最初(0%)は
transform: translateY(15%);で画面下側に配置しておく。 transform: none;で元の位置に戻してしばらくそのまま(10〜90%)。- 最後(100%)は再び
transform: translateY(15%);で画面下側に戻す。opacityも設定しておくことで、下からフワッと出て再びフワッと下に消えるようなアニメーションになる。
- 最初(0%)は
- JavaScriptで、このアニメーションを設定したクラス(popup-message)をボタンクリックで付け外しする。
const btn4Text = document.getElementById('btn4-text');
const btn4 = document.getElementById('btn4');
btn4.addEventListener('click', () => {
btn4Text.classList.remove('hidden');
btn4Text.classList.add('popup-message');
});
btn4Text.addEventListener('animationend', () => {
btn4Text.classList.remove('popup-message');
btn4Text.classList.add('hidden');
});まとめ
以上、ボタンをクリックすることでメッセージを表示させる具体的な方法を4つ紹介しました。
| 表示方法 | 特徴 | 適したシチュエーション |
|---|---|---|
| ダイアログボックス | シンプル・手軽に実装可能 | 簡単な通知 |
| アコーディオン | スペースを取らない | FAQページ |
| モーダル | 画面に集中させる | 重要な確認メッセージ |
| ポップアップ | 一時的な通知 | 成功メッセージ など |
本記事ではメッセージ(文字列)を出したり消したりする実装でしたが、同じ方法で画像などの要素にも対応できます。また、どの方法も用途に応じて使い分けるのがポイントです。ぜひ、ご自身のWebサイトに合った方法を試してみてください!
【おまけ】ボタンを立体的にする方法
思わずクリックしたくなるような、ちょっとしたアニメーション付きのボタンをCSSで実装できます。
コードは以下記事で公開していますので、本記事と合わせてご覧ください。
当サイトで公開しているWebデザインやUIの実装例は、一覧として以下記事に纏めています。

