用 html5写一个留言板 同时留言可以在页面里滚动显示并用json文件存储留言
时间: 2023-05-14 22:06:55 浏览: 80
好的,这是一个比较简单的任务。你可以使用HTML5、CSS和JavaScript来创建一个留言板。首先,你需要创建一个HTML页面,包含一个表单,让用户输入留言。然后,你可以使用JavaScript来处理表单提交事件,将留言存储到一个JSON文件中。最后,你可以使用JavaScript来读取JSON文件中的留言,并将它们显示在页面上,可以使用CSS来控制留言的样式和滚动效果。如果你需要更详细的代码实现,可以参考一些开源的留言板项目。
相关问题
利用html、css和JS写一个留言面板留言能保存在网页上
好的,下面是一个使用 HTML、CSS 和 JavaScript 编写的留言面板,留言内容可以保存在网页上。
HTML 代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>留言面板</title>
<style>
/* 样式表 */
body { font-family: Arial, sans-serif; }
.container { max-width: 800px; margin: 0 auto; }
h1 { text-align: center; }
form { margin-bottom: 20px; }
label { display: block; margin-bottom: 5px; }
input[type="text"], textarea { width: 100%; padding: 10px; margin-bottom: 20px; border: 1px solid #ccc; border-radius: 4px; }
button[type="submit"] { display: block; margin: 0 auto; padding: 10px 20px; background-color: #007bff; color: #fff; border: none; border-radius: 4px; cursor: pointer; }
.messages { list-style: none; padding: 0; margin: 0; }
.message { background-color: #f2f2f2; padding: 10px; margin-bottom: 10px; border-radius: 4px; }
.message h2 { margin-top: 0; }
.message p { margin-bottom: 0; }
</style>
</head>
<body>
<div class="container">
<h1>留言面板</h1>
<form>
<label for="name">姓名:</label>
<input type="text" id="name" required>
<label for="email">邮箱:</label>
<input type="text" id="email" required>
<label for="message">留言:</label>
<textarea id="message" required></textarea>
<button type="submit">提交留言</button>
</form>
<ul class="messages"></ul>
</div>
<script src="app.js"></script>
</body>
</html>
```
CSS 代码:
```css
/* 样式表 */
body { font-family: Arial, sans-serif; }
.container { max-width: 800px; margin: 0 auto; }
h1 { text-align: center; }
form { margin-bottom: 20px; }
label { display: block; margin-bottom: 5px; }
input[type="text"], textarea { width: 100%; padding: 10px; margin-bottom: 20px; border: 1px solid #ccc; border-radius: 4px; }
button[type="submit"] { display: block; margin: 0 auto; padding: 10px 20px; background-color: #007bff; color: #fff; border: none; border-radius: 4px; cursor: pointer; }
.messages { list-style: none; padding: 0; margin: 0; }
.message { background-color: #f2f2f2; padding: 10px; margin-bottom: 10px; border-radius: 4px; }
.message h2 { margin-top: 0; }
.message p { margin-bottom: 0; }
```
JavaScript 代码:
```js
const form = document.querySelector('form');
const messages = document.querySelector('.messages');
// 从 localStorage 中获取留言列表
let messageList = JSON.parse(localStorage.getItem('messages')) || [];
// 显示留言列表
function displayMessages() {
messages.innerHTML = '';
messageList.forEach(message => {
const li = document.createElement('li');
const h2 = document.createElement('h2');
const p1 = document.createElement('p');
const p2 = document.createElement('p');
h2.textContent = message.name;
p1.textContent = message.email;
p2.textContent = message.message;
li.classList.add('message');
li.appendChild(h2);
li.appendChild(p1);
li.appendChild(p2);
messages.appendChild(li);
});
}
// 提交表单
form.addEventListener('submit', event => {
event.preventDefault(); // 阻止表单默认提交行为
const name = form.querySelector('#name').value;
const email = form.querySelector('#email').value;
const message = form.querySelector('#message').value;
messageList.push({ name, email, message }); // 将留言添加到列表中
localStorage.setItem('messages', JSON.stringify(messageList)); // 将留言列表保存到 localStorage 中
form.reset(); // 重置表单
displayMessages(); // 显示留言列表
});
displayMessages(); // 页面加载时显示留言列表
```
这个留言面板使用了 HTML、CSS 和 JavaScript 技术,在页面中显示留言列表和留言表单。当用户提交留言时,它会将留言添加到 JavaScript 数组中,并将留言列表保存到 localStorage 中。当用户访问页面时,它会从 localStorage 中加载留言列表并将其显示在页面上。
请注意,这个留言面板仅用于示例目的,没有进行任何安全性和错误处理,您需要根据自己的需求进行适当的修改和改进。
利用html、css和JS写一个留言面板,并且留言能保存在网页里面的盒子里面,盒子具有删除的功能
好的,我可以为您提供一个简单的留言板示例,使用HTML、CSS和JS编写,您可以根据您的需求进行修改和扩展。
HTML代码:
```html
<div class="container">
<h2>留言板</h2>
<form>
<label for="name">姓名:</label>
<input type="text" id="name" name="name" required>
<br>
<label for="message">留言:</label>
<textarea id="message" name="message" required></textarea>
<br>
<button id="submit">提交</button>
</form>
<div id="messageBox"></div>
</div>
```
CSS代码:
```css
.container {
margin: 20px auto;
max-width: 600px;
padding: 20px;
border: 1px solid #ccc;
border-radius: 5px;
font-family: Arial, sans-serif;
}
h2 {
text-align: center;
}
form {
display: flex;
flex-direction: column;
align-items: center;
}
label {
font-weight: bold;
}
input[type="text"],
textarea {
padding: 10px;
margin-bottom: 10px;
border-radius: 5px;
border: 1px solid #ccc;
width: 100%;
box-sizing: border-box;
}
button {
padding: 10px;
background-color: #008CBA;
color: #fff;
border: none;
border-radius: 5px;
cursor: pointer;
}
button:hover {
background-color: #00688B;
}
.message {
margin-top: 20px;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
background-color: #f9f9f9;
position: relative;
}
.message p {
margin: 0;
}
.delete {
position: absolute;
top: 5px;
right: 5px;
cursor: pointer;
}
```
JS代码:
```js
const form = document.querySelector('form');
const messageBox = document.getElementById('messageBox');
form.addEventListener('submit', e => {
e.preventDefault();
const name = e.target.elements.name.value;
const message = e.target.elements.message.value;
const timestamp = new Date().toLocaleString();
const id = Date.now();
const messageDiv = document.createElement('div');
messageDiv.classList.add('message');
messageDiv.innerHTML = `
<p><strong>${name}:</strong> ${message}</p>
<p>${timestamp}</p>
<span class="delete" data-id="${id}">×</span>
`;
messageBox.appendChild(messageDiv);
saveMessage(id, name, message, timestamp);
e.target.reset();
});
messageBox.addEventListener('click', e => {
if (e.target.classList.contains('delete')) {
const id = Number(e.target.getAttribute('data-id'));
const messageDiv = e.target.parentNode;
messageBox.removeChild(messageDiv);
deleteMessage(id);
}
});
function saveMessage(id, name, message, timestamp) {
const messages = JSON.parse(localStorage.getItem('messages') || '[]');
messages.push({ id, name, message, timestamp });
localStorage.setItem('messages', JSON.stringify(messages));
}
function deleteMessage(id) {
const messages = JSON.parse(localStorage.getItem('messages') || '[]');
const index = messages.findIndex(m => m.id === id);
if (index > -1) {
messages.splice(index, 1);
localStorage.setItem('messages', JSON.stringify(messages));
}
}
function renderMessages() {
const messages = JSON.parse(localStorage.getItem('messages') || '[]');
messages.forEach(m => {
const messageDiv = document.createElement('div');
messageDiv.classList.add('message');
messageDiv.innerHTML = `
<p><strong>${m.name}:</strong> ${m.message}</p>
<p>${m.timestamp}</p>
<span class="delete" data-id="${m.id}">×</span>
`;
messageBox.appendChild(messageDiv);
});
}
renderMessages();
```
这个留言板使用了本地存储,可以将留言保存在浏览器中,并且具有删除功能,每条留言都有一个唯一的ID。