JavaScript 实现简易留言板功能
作者:闭包旅人时间:2026-10-23 16:37:01浏览:438
本文通过 HTML、CSS 和 JavaScript 三个部分,详细展示了如何构建一个简易的留言板功能。代码涵盖了消息列表的渲染、用户输入框的样式设计以及发送按钮的点击事件处理,实现了消息的动态添加与滚动定位。
JavaScript 实现简易留言板功能
本文分享了使用 JavaScript 开发留言板功能的具体实现方案,供读者参考。
HTML 结构
以下是相关的 HTML 结构代码。
<div id="main" class="main">
<ul id="content" class="content">
<li class="msgContent left">hello?</li>
<div style="clear: both;"></div>
<li class="msgContent left">hello</li>
<div style="clear: both;"></div>
<li class="msgContent right">hi</li>
<div style="clear: both;"></div>
<li class="msgContent left">hehe</li>
<div style="clear: both;"></div>
<li class="msgContent left">goodbye</li>
<div style="clear: both;"></div>
<li class="msgContent right">。。。。</li>
<div style="clear: both;"></div>
<li class="msgContent right">I LOVE YOU</li>
</ul>
<textarea id="msg_input" class="msgInput"></textarea>
<button id="sendbtn" class="sendbtn">发送</button>
</div>
CSS 样式
接着是用于美化界面样式的 CSS 代码。
* {
font-size: 14px;
padding: 0;
margin: 0;
}
.main {
position: relative;
margin: 20px auto;
border: 1px solid steelblue;
width: 430px;
height: 400px;
}
.msgInput {
display: block;
width: 406px;
height: 60px;
margin: 10px auto;
}
.sendbtn {
position: absolute;
width: 100px;
height: 29px;
bottom: 5px;
right: 10px;
}
.content {
list-style: none;
width: 410px;
height: 280px;
margin: 5px auto;
border: 1px dotted #D1D3D6;
overflow-y: scroll;
}
.msgContent {
width: auto;
max-width: 250px;
height: auto;
word-break: break-all;
margin: 5px;
padding: 3px;
border-radius: 5px;
}
.content .left {
float: left;
text-align: left;
background-color: lightgrey;
}
.content .right {
float: right;
text-align: right;
background-color: yellowgreen;
}
.clear {
clear: both;
}
JavaScript 逻辑
核心交互逻辑由以下 JavaScript 代码实现。
var oBtn = document.getElementById("sendbtn");
var msg = document.getElementById("msg_input");
var oCon = document.getElementById("content");
oBtn.onclick = function () {
var msgVal = msg.value;
var li = document.createElement("li");
li.innerHTML = msgVal;
li.className = "msgContent right";
var div = document.createElement("div");
div.className = "clear";
oCon.appendChild(div);
oCon.appendChild(li);
msg.value = "";
//可见范围看见当前元素
li.scrollIntoView()
};
document.onkeypress = function (e) {
var e = e || event;
var code = e.keyCode || e.which;
if (code == 10) {
var msgVal = msg.value;
var li = document.createElement("li");
li.innerHTML = msgVal;
li.className = "msgContent right";
var div = document.createElement("div");
div.className = "clear";
oCon.appendChild(div);
oCon.appendChild(li);
msg.value = "";
//可见范围看见当前元素
li.scrollIntoView();
}
}
以上即为留言板功能的全部实现内容,希望能为读者的学习提供便利,也欢迎继续支持本站。
作者最新文章
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
p5.js 中 setup() 和 draw() 函数的执行机制详解
2026-11-05 12:32:38
