网页留言板源码:网页留言板源码,从零开始实现一个简单实用的留言板系统
在现代网站中,留言板是一个常见的交互元素,它允许用户向网站所有者或访客发送消息,无论是个人博客、企业官网还是小型社区网站,一个简洁实用的留言板都能有效提升用户体验和互动性,本文将详细介绍如何从零开始实现一个网页留言板系统,包括HTML结构、CSS样式和JavaScript交互逻辑。
实现步骤
HTML结构设计
我们需要创建一个基本的HTML结构,包含表单输入区域和消息显示区域。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">留言板</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<h1>留言板</h1>
<form id="messageForm">
<div class="form-group">
<label for="name">姓名</label>
<input type="text" id="name" name="name" required>
</div>
<div class="form-group">
<label for="email">邮箱</label>
<input type="email" id="email" name="email" required>
</div>
<div class="form-group">
<label for="message">留言内容</label>
<textarea id="message" name="message" rows="5" required></textarea>
</div>
<button type="submit">提交留言</button>
</form>
<div class="message-list" id="messageList">
<!-- 留言将在这里显示 -->
</div>
</div>
<script src="script.js"></script>
</body>
</html> CSS样式设计
我们为留言板添加一些基本的样式,使其看起来更加美观。
/* style.css */
body {
font-family: 'Microsoft YaHei', sans-serif;
background-color: #f5f5f5;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
}
.container {
background-color: white;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
padding: 30px;
width: 90%;
max-width: 600px;
}
h1 {
text-align: center;
color: #333;
}
.form-group {
margin-bottom: 20px;
}
label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
input, textarea {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 4px;
font-family: inherit;
}
button {
background-color: #5cb85c;
color: white;
border: none;
padding: 10px 20px;
border-radius: 4px;
cursor: pointer;
font-size: 16px;
}
button:hover {
background-color: #4cae4c;
}
.message-list {
margin-top: 30px;
}
.message {
background-color: #f9f9f9;
border-left: 4px solid #5cb85c;
padding: 15px;
margin-bottom: 15px;
border-radius: 0 4px 4px 0;
}
.message-header {
display: flex;
justify-content: space-between;
margin-bottom: 5px;
}
.message-name {
font-weight: bold;
}
.message-time {
color: #777;
font-size: 0.9em;
}
.message-content {
margin-top: 5px;
color: #333;
} JavaScript交互逻辑
我们使用JavaScript来处理表单提交和留言显示。
// script.js
document.addEventListener('DOMContentLoaded', function() {
const form = document.getElementById('messageForm');
const messageList = document.getElementById('messageList');
// 从localStorage加载留言
loadMessages();
form.addEventListener('submit', function(e) {
e.preventDefault();
const name = document.getElementById('name').value;
const email = document.getElementById('email').value;
const message = document.getElementById('message').value;
// 创建留言对象
const newMessage = {
name: name,
email: email,
content: message,
time: new Date().toLocaleString()
};
// 保存留言到localStorage
saveMessage(newMessage);
// 显示留言
displayMessage(newMessage);
// 清空表单
form.reset();
});
function saveMessage(message) {
// 从localStorage获取现有留言
let messages = JSON.parse(localStorage.getItem('messages')) || [];
// 添加新留言
messages.push(message);
// 保存到localStorage
localStorage.setItem('messages', JSON.stringify(messages));
}
function loadMessages() {
const messages = JSON.parse(localStorage.getItem('messages')) || [];
messages.forEach(message => {
displayMessage(message);
});
}
function displayMessage(message) {
const messageElement = document.createElement('div');
messageElement.className = 'message';
const messageHeader = document.createElement('div');
messageHeader.className = 'message-header';
const messageName = document.createElement('div');
messageName.className = 'message-name';
messageName.textContent = message.name;
const messageTime = document.createElement('div');
messageTime.className = 'message-time';
messageTime.textContent = message.time;
messageHeader.appendChild(messageName);
messageHeader.appendChild(messageTime);
const messageContent = document.createElement('div');
messageContent.className = 'message-content';
messageContent.textContent = message.content;
messageElement.appendChild(messageHeader);
messageElement.appendChild(messageContent);
messageList.insertBefore(messageElement, messageList.firstChild);
}
}); 完整代码
以下是完整的HTML、CSS和JavaScript代码,可以直接保存为一个HTML文件并在浏览器中运行:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">留言板</title>
<style>
body {
font-family: 'Microsoft YaHei', sans-serif;
background-color: #f5f5f5;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
}
.container {
background-color: white;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
padding: 30px;
width: 90%;
max-width: 600px;
}
h1 {
text-align: center;
color: #333;
}
.form-group {
margin-bottom: 20px;
}
label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
input, textarea {
width: 100%;
padding: 10px;
border: 1px solid #ddd;
border-radius: 4px;
font-family: inherit;
}
button {
background-color: #5cb85c;
color: white;
border: none;
padding: 10px 20px;
border-radius: 4px;
cursor: pointer;
font-size: 16px;
}
button:hover {
background-color: #4cae4c;
}
.message-list {
margin-top: 30px;
}
.message {
background-color: #f9f9f9;
border-left: 4px solid #5cb85c;
padding: 15px;
margin-bottom: 15px;
border-radius: 0 4px 4px 0;
}
.message-header {
display: flex;
justify-content: space-between;
margin-bottom: 5px;
}
.message-name {
font-weight: bold;
}
.message-time {
color: #777;
font-size: 0.9em;
}
.message-content {
margin-top: 5px;
color: #333;
}
</style>
</head>
<body>
<div class="container">
<h1>留言板</h1>
<form id="messageForm">
<div class="form-group">
<label for="name">姓名</label>
<input type="text" id="name" name="name" required>
</div>
<div class="form-group">
<label for="email">邮箱</label>
<input type="email" id="email" name="email" required>
</div>
<div class="form-group">
<label for="message">留言内容</label>
<textarea id="message" name="message" rows="5" required></textarea>
</div>
<button type="submit">提交留言</button>
</form>
<div class="message-list" id="messageList">
<!-- 留言将在这里显示 -->
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
const form = document.getElementById('messageForm');
const messageList = document.getElementById('messageList');
// 从localStorage加载留言
loadMessages();
form.addEventListener('submit', function(e) {
e.preventDefault();
const name = document.getElementById('name').value;
const email = document.getElementById('email').value;
const message = document.getElementById('message').value;
// 创建留言对象
const newMessage = {
name: name,
email: email,
content: message,
time: new Date().toLocaleString()
};
// 保存留言到localStorage
saveMessage(newMessage);
// 显示留言
displayMessage(newMessage);
// 清空表单
form.reset();
});
function saveMessage(message) {
// 从localStorage获取现有留言
let messages = JSON.parse(localStorage.getItem('messages')) || [];
// 添加新留言
messages.push(message);
// 保存到localStorage
localStorage.setItem('messages', JSON.stringify(messages));
}
function loadMessages() {
const messages = JSON.parse(localStorage.getItem('messages')) || [];
messages.forEach(message => {
displayMessage(message);
});
}
function displayMessage(message) {
const messageElement = document.createElement('div');
messageElement.className = 'message';
const messageHeader = document.createElement('div');
messageHeader.className = 'message-header';
const messageName = document.createElement('div');
messageName.className = 'message-name';
messageName.textContent = message.name;
const messageTime = document.createElement('div');
messageTime.className = 'message-time';
messageTime.textContent = message.time;
messageHeader.appendChild(messageName);
messageHeader.appendChild(messageTime);
const messageContent = document.createElement('div');
messageContent.className = 'message-content';
messageContent.textContent = message.content;
messageElement.appendChild(messageHeader);
messageElement.appendChild(messageContent);
messageList.insertBefore(messageElement, messageList.firstChild);
}
});
</script>
</body>
</html> 通过以上步骤,我们成功创建了一个简单但功能完整的网页留言板系统,这个留言板使用浏览器的localStorage来存储留言数据,无需后端支持即可运行,这只是一个基础版本,你可以根据需要添加更多功能,如用户验证、留言编辑和删除、分页显示等。
希望这篇文章能帮助你快速实现一个网页留言板系统!

文章已关闭评论!










