本文目录导读:
随着互联网的快速发展,网站留言功能已成为许多网站的重要组成部分,它不仅可以增加网站的互动性,还能让访客留下宝贵意见,我将为大家分享一个基于HTML、CSS和JavaScript实现的网站留言插件源码,帮助您轻松搭建留言功能。
插件功能
1、留言内容展示:展示访客留言的内容,包括昵称、留言时间和留言内容。
2、留言评论回复:访客可以对其他访客的留言进行回复。
图片来源于网络,如有侵权联系删除
3、留言排序:按时间顺序展示留言。
4、分页功能:当留言数量较多时,实现分页展示。
实现步骤
1、创建HTML结构
图片来源于网络,如有侵权联系删除
<div id="message-box"> <h2>留言板</h2> <div id="message-list"> <!-- 留言内容 --> </div> <div id="message-form"> <input type="text" id="nickname" placeholder="昵称" /> <textarea id="content" placeholder="留言内容"></textarea> <button id="submit-btn">提交</button> </div> <div id="reply-form" style="display:none;"> <input type="text" id="reply-nickname" placeholder="回复昵称" /> <textarea id="reply-content" placeholder="回复内容"></textarea> <button id="reply-submit-btn">回复</button> </div> <div id="pagination"></div> </div>
2、编写CSS样式
#message-box { width: 500px; margin: 0 auto; padding: 20px; border: 1px solid #ccc; border-radius: 5px; } #message-list { margin-bottom: 20px; } .message-item { border-bottom: 1px solid #ccc; padding: 10px; } .message-item .nickname { font-weight: bold; } .message-item .time { color: #999; } #message-form, #reply-form { margin-bottom: 20px; } input, textarea { width: 100%; padding: 8px; border: 1px solid #ccc; border-radius: 4px; } button { padding: 10px 20px; background-color: #4CAF50; color: white; border: none; border-radius: 4px; cursor: pointer; } button:hover { background-color: #45a049; } .pagination { text-align: center; } .pagination a { display: inline-block; padding: 5px 10px; border: 1px solid #ccc; border-radius: 4px; margin: 0 5px; } .pagination a.active { background-color: #4CAF50; color: white; }
3、编写JavaScript代码
// 初始化留言列表
function initMessageList() {
// 获取留言数据(此处用静态数据代替)
const messages = [
{ nickname: '访客1', time: '2021-01-01 12:00:00', content: '欢迎来到我的网站!' },
{ nickname: '访客2', time: '2021-01-01 12:05:00', content: '我也很喜欢这个网站!' }
];
// 创建留言列表
const messageList = document.getElementById('message-list');
messages.forEach(message => {
const item = document.createElement('div');
item.className = 'message-item';
item.innerHTML = `
<div class="nickname">${message.nickname}</div>
<div class="time">${message.time}</div>
<div>${message.content}</div>
`;
messageList.appendChild(item);
});
}
// 初始化分页
function initPagination(totalMessages, pageSize) {
const pagination = document.getElementById('pagination');
const totalPages = Math.ceil(totalMessages / pageSize);
// 创建分页链接
for (let i = 1; i <= totalPages; i++) {
const link = document.createElement('a');
link.href = '#';
link.innerText = i;
link.className = i === 1 ? 'active' : '';
link.addEventListener('click', () => {
// 切换到当前页
changePage(i);
});
pagination.appendChild(link);
}
}
// 切换页面
function changePage(page) {
// 获取当前页留言数据(此处用静态数据代替)
const messages = [
// ...(省略其他留言数据)
];
const pageSize = 2; // 每页显示2条留言
const startIndex = (page - 1) * pageSize;
const endIndex = startIndex + pageSize;
// 清空留言列表
const messageList = document.getElementById('message-list');
messageList.innerHTML = '';
// 添加当前页留言数据
for (let i = startIndex; i < endIndex; i++) {
if (messages[i]) {
const item = document.createElement('div');
item.className = 'message-item';
item.innerHTML = `
<div class="nickname">${messages[i].nickname}</div>
<div class="time">${messages[i].time}</div>
<div>${messages[i].content}</div>
`;
messageList.appendChild(item);
}
}
}
// 提交留言
function submitMessage() {
const nickname = document.getElementById('nickname').value;
const content = document.getElementById('content').value;
// 创建留言数据
const message = {
nickname,
time: new Date().toLocaleString(),
content
};
// 添加留言到列表
const messageList = document.getElementById('message-list');
const item = document.createElement('div');
item.className = 'message-item';
item.innerHTML = `
<div class="nickname">${message.nickname}</div>
<div class="time">${message.time}</div>
<div>${message.content}</div>
`;
messageList.appendChild(item);
// 清空留言表单
document.getElementById('nickname').value = '';
document.getElementById('content').value = '';
// 初始化分页
initPagination(1, 2);
}
// 提交回复
function submitReply() {
const replyNickname = document.getElementById('reply-nickname').value;
const replyContent = document.getElementById('reply-content').value;
// 创建回复数据
const reply = {
replyNickname,
time: new Date().toLocaleString(),
content:@${replyNickname} ${replyContent}
};
// 添加回复到留言内容
const content = document.getElementById('content').value;
const replyText = `
${reply.content}`;
document.getElementById('content').value = content + replyText;
// 清空回复表单
document.getElementById('reply-nickname').value = '';
document.getElementById('reply-content').value = '';
// 隐藏回复表单
document.getElementById('reply-form').style.display = 'none';
}
// 页面加载完成后执行
document.addEventListener('DOMContentLoaded', () => {
initMessageList();
initPagination(2, 2);
});
4、集成到网站
图片来源于网络,如有侵权联系删除
将上述代码保存为HTML文件,并在网站中适当位置插入该文件即可实现留言功能。
本文详细介绍了基于HTML、CSS和JavaScript实现的网站留言插件源码,包括功能、实现步骤和代码示例,通过阅读本文,您应该能够轻松搭建属于自己的网站留言功能。
标签: #网站留言插件源码
评论列表