JavaScriptでToast通知を実装する方法

  • Toast通知の基本

  • JavaScriptでの実装方法

  • 実践的なToastの活用例(フォーム送信、エラーメッセージなど)

  • おすすめのtoast用ライブラリの紹介

こんにちは、フロントエンドエンジニアのてりーです。
React + TypeScriptを5年以上使い続け、派遣 → フリーランス → メガベンチャーとキャリアを積んできました。
詳しいキャリアや学習ロードマップについてはこちらからどうぞ!

👉 本記事ではJavaScriptでのToast通知の実装方法を解説していきます!

1. Toast通知とは?

Toast通知とは、画面上に一時的に小さな通知メッセージを表示するUIコンポーネントです。主に次のような場面で使用されます

  • ユーザー操作の成功・失敗の通知

  • 短いメッセージやヒントの表示

  • 状態変更のフィードバック

Toast通知の利点

  • 非干渉性: 他のコンテンツを邪魔しない

  • 直感的: ユーザーがすぐに理解できる

  • 短時間表示: 画面を占有せず、自然に消える

他のUIパーツとの違い

  • モーダルダイアログ: 画面全体を覆うのに対し、Toastは画面の一部で完結

  • アラートボックス: ユーザーの操作が必要だが、Toastは自動的に消える

  • 通知バッジ: 永続的な通知に使われるが、Toastは一時的

2. 基本的なToast通知の実装

さて、Toastの基本形を実装していきましょう!
HTML、CSS、JavaScriptがそれぞれ必要になります。

2.1. HTML

<div id="toast" class="toast">操作が完了しました</div>

2.2. CSS

.toast {
  visibility: hidden;
  min-width: 250px;
  margin-left: -125px;
  background-color: #333;
  color: #fff;
  text-align: center;
  border-radius: 5px;
  padding: 16px;
  position: fixed;
  z-index: 1;
  left: 50%;
  bottom: 30px;
  font-size: 17px;
}

.toast.show {
  visibility: visible;
  animation: fadein 0.5s, fadeout 0.5s 2.5s;
}

@keyframes fadein {
  from {bottom: 0; opacity: 0;}
  to {bottom: 30px; opacity: 1;}
}

@keyframes fadeout {
  from {bottom: 30px; opacity: 1;}
  to {bottom: 0; opacity: 0;}
}

2.3. JavaScript

function showToast(message) {
  const toast = document.getElementById('toast');
  toast.textContent = message;
  toast.className = 'toast show';
  setTimeout(() => {
    toast.className = toast.className.replace('show', '');
  }, 3000);
}

// 使用例
showToast('データが保存されました');

これで基本形は完成です!

2.4. 複数Toastの管理

複数のToastを管理する場合は、動的にDOM要素を追加・削除する方法が便利です。

function createToast(message) {
  const toast = document.createElement('div');
  toast.className = 'toast show';
  toast.textContent = message;
  document.body.appendChild(toast);

  setTimeout(() => {
    toast.remove();
  }, 3000);
}

// 使用例
createToast('新しい通知メッセージ');

👉 【独学・未経験向け】最短でフロントエンドエンジニアになる勉強法
👉 未経験でも安心!ReactとTypeScriptでエンジニアデビューを目指そう

3. 実践的な活用例

ここではToastが実際のWebサービスでどのように使われているか、活用例を見ていきましょう!

フォーム送信時の通知

フォームが送信された後に、トーストでユーザーにその旨を伝えます。

const form = document.querySelector('#myForm');
form.addEventListener('submit', (e) => {
  e.preventDefault();
  showToast('フォームが正常に送信されました!');
});

APIリクエスト後の通知

APIリクエストの結果をユーザーに通知します!
エラーの場合の通知は送っているサービスもちょこちょこありますね。

fetch('/api/data')
  .then(response => {
    if (response.ok) {
      showToast('データが正常に取得されました');
    } else {
      showToast('エラーが発生しました');
    }
  });<br />

エラーメッセージの表示

アプリケーション内のエラーハンドリングで、トースト表示も選択肢としてはアリだと思います!

try {<br />throw new Error('エラーが発生しました');<br />} catch (error) {<br />showToast(error.message);<br />}<br />

おすすめのライブラリ

1. Toastify.js

トースト処理に特化していて導入しやすいです!

Toastify is a pure JavaScript library that lets you create n…

  • 軽量でシンプル

  • カスタマイズ性が高い

  • 複数の通知を同時に管理可能

使用例:

<span>Toastify({
  text: "操作が完了しました",
  duration: 3000
}).showToast();</span>

2. SweetAlert2

トーストだけでなく様々さUIパーツに対応しています!

SweetAlert2 - a beautiful, responsive, customizable and acce…

  • 美しいUI

  • モーダル通知も可能

  • 複雑な通知の作成が容易

3. Notyf

Notyf is a JavaScript library for toast notifications. Respo…

  • シンプルで直感的

  • 色分けやアイコンの設定が簡単

比較表

ライブラリ名 特徴 カスタマイズ性 使用難易度
Toastify.js 軽量・シンプル 高い
SweetAlert2 美しいUI・多機能 中程度
Notyf 直感的・色分け簡単 高い

まとめ

  • Toast通知は短いフィードバックメッセージに最適

  • シンプルなJavaScriptとCSSで簡単に実装可能

  • 使用シーンに応じてライブラリを活用する

  • 高度なカスタマイズで柔軟に対応

📚次に読むべきおすすめ記事

さらにJavaScriptやReactの理解を深めたい方には、以下の記事がおすすめです!

フロントエンド関連の記事

👉 【独学・未経験向け】最短でフロントエンドエンジニアになる勉強法
👉 未経験でも安心!ReactとTypeScriptでエンジニアデビューを目指そう

👉【2025年】未経験から即戦力へ!React+TypeScriptの学習ロードマップ
👉 【React+TypeScript】Netflixのクローンを作るチュートリアル

人気記事
👉 未経験の僕がメガベンチャーエンジニアなった軌跡
👉 エンジニア転職年収アップ実現
👉
転職ドラフト指名の画像アリ】2年目で600万の指名を獲得した僕が考える技術自信ナシでも転職ドラフトを使った方が良い理由
👉フルリモート週2~3日からでも副業が出来るエージェント紹介