用原生JS模拟一个聊天记录表
2016-11-01 18:57
127 查看
这是一个模拟聊天记录的案例,初学者可以通过本例对来加深JS的事件的熟悉和理解。
话不多说,我们先来看一下效果图吧。
下面开始说明怎么写吧。
HTML结构:
先看看JS代码吧:
CSS样式(重点在JS,这只是一些美观样式):
这只是一个很简单的例子。
下一篇博客会写如何在局域网内进行聊天。
(觉得好就【顶】一个)。
话不多说,我们先来看一下效果图吧。
下面开始说明怎么写吧。
HTML结构:
<div id="main" class="main"> <ul id="content" class="content"> <li class="msgContent left">你好</li> <div style="clear: both;"></div> <li class="msgContent left">这个是什么</li> <div style="clear: both;"></div> <li class="msgContent right">。。。。</li> <div style="clear: both;"></div> <!-- 当点击发送按钮,就在 ul 中添加一条消息记录 --> </ul> <textarea id="msg_input" class="msgInput"></textarea> <button id="sendbtn" class="sendbtn">发送</button>
先看看JS代码吧:
//获取节点 var oInput = document.getElementById("msg_input"); var oBtn = document.getElementById("sendbtn"); var oContent = document.getElementById("content");//ul //点击发送 oBtn.onclick = function() { //内容输出 var str = oInput.value;//获取输入框的值 var oLi = document.createElement("li");//创建li标签 oLi.innerHTML = str;//节点内容 oContent.appendChild(oLi);//把新建的li标签压入ul中 //对li添加发送消息的样式 oLi.className = "msgContent right"; //清除li的浮动: oLi.style.clear = "both"; //设置发送内容后输入框的数据清空: oInput.value = ""; //保持当前节点对象在最可见区域 oLi.scrollIntoView(); } //按下Ctrl+Enter回车键完成发送 oInput.onkeydown = function(e) { e = e || window.event; if (e.ctrlKey && e.keyCode == 13) { oBtn.onclick();//执行发送内容 } }
CSS样式(重点在JS,这只是一些美观样式):
*{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; }
这只是一个很简单的例子。
下一篇博客会写如何在局域网内进行聊天。
(觉得好就【顶】一个)。
相关文章推荐
- 无聊用js写了一个模拟的购物车[原]
- 多组处理, 仅展开一个区块的折叠效果(原生Js和jQ版)
- 用canvas和原生JS写的一个flappy bird游戏
- 使用Node.js开发一个在线聊天应用——编写前台
- 使用Node.js开发一个在线聊天应用——编写后台
- 忙活了大半天,公布一个模拟Portlet的js小程序
- 原生js实现模拟滚动条
- 使用原生js写的一个简单slider
- 一个模拟"显示桌面.scf"程序的JS小函数
- js模拟一个回车事件(ie下支持)
- 原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
- 黑马程序员 用UDP协议在dos命令行里模拟一个聊天程序
- 用html+js+css做一个模拟键盘
- 原生js写的一个弧形菜单插件
- 原生js模拟jquery写法
- 一个小型浏览器架构:HTTP通讯、COOKIE处理、HTML解析、JS模拟、表单处理
- 不要再吹水地球人听不懂的技术,咱来点干货!--中文前端UI框架Kit(四)给你真正的原生的drag以及drop事件,而不是像市面上主流的Js框架jQuery,Ext等,利用mousemove事件,判断位置来模拟
- 创建一个js日历(原生JS实现日历)
- nodeJS+express+Jade写一个局域网聊天应用(node基础)
- js原生创建模拟事件和自定义事件的方法