<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ローカルチャットシステム</title>
<style>
body {
font-family: Arial, sans-serif;
background-color: #f4f4f4;
margin: 0;
padding: 0;
}
.chat-container {
width: 80%;
max-width: 600px;
margin: 50px auto;
background-color: white;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
border-radius: 8px;
overflow: hidden;
display: flex;
flex-direction: column;
height: 600px;
}
.chat-header {
background-color: #007bff;
color: white;
padding: 10px;
text-align: center;
font-size: 18px;
}
.chat-messages {
flex-grow: 1;
overflow-y: scroll;
padding: 10px;
background-color: #fafafa;
}
.chat-message {
margin-bottom: 10px;
display: flex;
align-items: center;
}
.chat-message .username {
font-weight: bold;
margin-right: 5px;
}
.message-content {
padding: 8px;
background-color: #e9ecef;
border-radius: 5px;
flex-grow: 1;
}
.message-time {
font-size: 12px;
text-align: right;
margin-left: 10px;
color: #888;
}
.chat-input {
display: flex;
border-top: 1px solid #ddd;
}
.chat-input input {
width: 100%;
padding: 10px;
border: none;
outline: none;
font-size: 16px;
}
.chat-input button {
padding: 10px;
background-color: #007bff;
color: white;
border: none;
cursor: pointer;
font-size: 16px;
}
</style>
</head>
<body>
<div class="chat-container">
<div class="chat-header">
ローカルチャットシステム
</div>
<div class="chat-messages" id="chat-messages">
<!-- メッセージがここに表示される -->
</div>
<div class="chat-input">
<input type="text" id="chat-input" placeholder="メッセージを入力...">
<button id="send-button">送信</button>
</div>
</div>
<script>
const messagesContainer = document.getElementById('chat-messages');
const inputField = document.getElementById('chat-input');
const sendButton = document.getElementById('send-button');
// ユーザー情報
const users = ['ユーザー1', 'ユーザー2'];
let currentUserIndex = 0;
// メッセージを追加する関数
function addMessage(content, username, time = new Date().toLocaleTimeString()) {
const messageDiv = document.createElement('div');
messageDiv.classList.add('chat-message');
const userSpan = document.createElement('span');
userSpan.classList.add('username');
userSpan.textContent = username;
messageDiv.appendChild(userSpan);
const messageContent = document.createElement('div');
messageContent.classList.add('message-content');
messageContent.textContent = content;
messageDiv.appendChild(messageContent);
const timeSpan = document.createElement('span');
timeSpan.classList.add('message-time');
timeSpan.textContent = time;
messageDiv.appendChild(timeSpan);
messagesContainer.appendChild(messageDiv);
// スクロールを最新メッセージに合わせる
messagesContainer.scrollTop = messagesContainer.scrollHeight;
}
// 送信ボタンのクリックイベント
sendButton.addEventListener('click', function() {
const message = inputField.value;
if (message.trim() !== '') {
const username = users[currentUserIndex];
currentUserIndex = (currentUserIndex + 1) % users.length; // ユーザーを切り替え
addMessage(message, username); // メッセージを表示
inputField.value = ''; // 入力フィールドをクリア
}
});
// エンターキーで送信できるように
inputField.addEventListener('keypress', function(e) {
if (e.key === 'Enter') {
sendButton.click();
}
});
</script>
</body>
</html>