用js写一个精致的留言板
时间: 2023-12-10 21:05:21 浏览: 56
以下是一个使用 JavaScript 实现的精致留言板示例:
HTML 代码:
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>留言板</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="container">
<h1>留言板</h1>
<form>
<div>
<label>姓名</label>
<input id="name" type="text" placeholder="请输入您的姓名" required>
</div>
<div>
<label>留言</label>
<textarea id="message" placeholder="请输入您的留言" required></textarea>
</div>
<button type="submit">提交</button>
</form>
<ul id="messages"></ul>
</div>
<script src="main.js"></script>
</body>
</html>
```
CSS 代码:
```css
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: sans-serif;
background-color: #f2f2f2;
}
.container {
max-width: 600px;
margin: 0 auto;
padding: 20px;
background-color: #fff;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}
h1 {
margin-bottom: 20px;
text-align: center;
}
form {
display: flex;
flex-direction: column;
margin-bottom: 20px;
}
form > div {
margin-bottom: 10px;
}
label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
input, textarea {
width: 100%;
padding: 10px;
border: none;
border-radius: 5px;
background-color: #f2f2f2;
}
button[type="submit"] {
width: 100%;
padding: 10px;
border: none;
border-radius: 5px;
background-color: #007bff;
color: #fff;
font-size: 16px;
cursor: pointer;
transition: background-color 0.2s ease-in-out;
}
button[type="submit"]:hover {
background-color: #0069d9;
}
ul {
list-style: none;
margin-bottom: 20px;
}
li {
margin-bottom: 10px;
padding: 10px;
background-color: #f2f2f2;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
li strong {
font-weight: bold;
}
li em {
display: block;
margin-top: 5px;
font-size: 12px;
color: #999;
}
```
JavaScript 代码:
```js
const form = document.querySelector('form');
const nameInput = document.querySelector('#name');
const messageInput = document.querySelector('#message');
const messagesList = document.querySelector('#messages');
let messages = [];
form.addEventListener('submit', function(event) {
event.preventDefault();
const name = nameInput.value.trim();
const message = messageInput.value.trim();
if (name === '' || message === '') {
return;
}
const timestamp = Date.now();
const newMessage = { name, message, timestamp };
messages.push(newMessage);
displayMessages();
form.reset();
});
function displayMessages() {
messagesList.innerHTML = '';
for (const message of messages) {
const li = document.createElement('li');
const date = new Date(message.timestamp);
const dateString = `${date.getFullYear()}-${padZero(date.getMonth() + 1)}-${padZero(date.getDate())} ${padZero(date.getHours())}:${padZero(date.getMinutes())}`;
li.innerHTML = `<strong>${message.name}:</strong> ${message.message} <em>${dateString}</em>`;
messagesList.appendChild(li);
}
}
function padZero(num) {
return num.toString().padStart(2, '0');
}
```
该留言板使用了 HTML、CSS 和 JavaScript 技术,实现了以下功能:
- 用户可以输入姓名和留言,并提交到留言板上。
- 留言板会显示所有已提交的留言,包括留言者姓名、留言内容和留言时间。
- 时间格式为 `YYYY-MM-DD HH:mm`。
- 重复提交空白留言时,无效提交。
该留言板还使用了 CSS 样式,使界面更加美观和易于使用。