初心者向け!JavaScriptで簡単なチャットアプリを作ってみた【HTML/CSS/JavaScript】

アプリ作成

どうも、みおです。

一度は作ってみたいチャットアプリについて、
簡易版をHTML/CSS/JavaScriptで作成してみました。

簡易版チャットアプリの完成イメージ

画面の中心にコメントの表示領域と、
入力領域が存在します。

入力領域に何かしらメッセージを入力し、
「送信」をクリックします。

表示領域となる上位枠に入力領域で入力したメッセージが、表示されるようになります。

簡易版チャットアプリの機能紹介

簡易版にあり、機能は2つ抑えています。

  • メッセージ送信(自分の画面に表示)
  • 入力欄と送信ボタンがあるUI

簡易版チャットアプリのコード

実装のための具体的なコードは下記のとおりです。

HTML

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>チャットアプリ</title>
<style>
/* CSSは後述 */
</style>
</head>
<body>
<div id="chat-container">
<div id="message-area"></div>
<input type="text" id="message-input" placeholder="メッセージを入力">
<button id="send-button">送信</button>
</div>
</body>
</html>

CSS

body { font-family: Arial, sans-serif; background-color: #f2f2f2; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; } #chat-container { background-color: #fff; border: 1px solid #ddd; width: 300px; height: 400px; display: flex; flex-direction: column; } #message-area { flex: 1; padding: 10px; overflow-y: auto; border-bottom: 1px solid #ddd; } #message-input { border: none; padding: 10px; flex: 0; } button { background-color: #4caf50; color: white; border: none; padding: 10px; cursor: pointer; }

JavaScript

document.addEventListener('DOMContentLoaded', () => {
const messageArea = document.getElementById('message-area');
const messageInput = document.getElementById('message-input');
const sendButton = document.getElementById('send-button');

 sendButton.addEventListener('click', () => {
const message = messageInput.value.trim();

if (message) {
const messageElement = document.createElement('div');
 messageElement.textContent = message;
 messageElement.style.marginBottom = '10px';
 messageArea.appendChild(messageElement);

 messageInput.value = ''; // 入力欄をクリア
 messageArea.scrollTop = messageArea.scrollHeight; // スクロールを最下部に
 }
 });
});

簡易版チャットアプリの追加実装例

簡易的なので、もっと具体的にチャットアプリとして落とし込むならば、

  • 送信ボタンだけでなくEnterキーでも送信できるようにする
  • CSSでメッセージを左右に分ける(自分と相手風)
  • ローカルストレージに保存して、リロードしてもメッセージを残す

こういった機能を実装するとより、精度を高められると思います。

このチャットアプリを発展させたい方は、WebSocketやNode.jsを使えばリアルタイムチャットも実現できます!

コメント

inserted by FC2 system