ボタンクリック(タップ)でメッセージを表示する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()
-
ユーザーがテキストを入力できる
詳しくは以下記事で、実装例やコードを公開しているで、本記事と合わせてご覧ください。
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の実装方法は、以下記事で公開しています。
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
を切り替え、モーダルウィンドウを開閉できるようにする。
- メリット
-
ユーザーの注意を引ける
- デメリット
-
実装がやや複雑
- 使用シーン
-
重要な確認メッセージ(例:削除確認)

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;
とし、top
bottom right
left
をすべて0
にすると、マスクの領域(暗い部分)が画面全体に広がる。#modal
もposition: fixed;
とし、表示位置をtop
right
left
で画面中央にくるよう調整。
また、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プロパティを指定することで、連続したアニメーションを設定できます。
- メリット
-
スタイリッシュで動きがある
- デメリット
-
一定時間後に消えるので見逃す可能性あり
- 使用シーン
-
送信成功メッセージや小さな通知

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の実装例は、一覧として以下記事に纏めています。
