JavaScript实现简易聊天对话框(加滚动条)


Posted in Javascript onFebruary 10, 2020

今天看了几个JS的视频,老师布置了一个编写一个简易聊天对话框的任务,没有涉及到Ajax.主要实现了切换头像模拟两方的聊天情况,样式比较简单,后期可以进行美化。

需要注意的地方是我是用的ul li列表来实现元素的添加,这样更利于样式的设置,每添加一个对话框需要清除一下浮动,不然会出现连续几个对话框出现在一行的现象。

代码如下:

<!DOCTYPE html>

<html>

<head>
<meta charset="utf-8">
<title>聊天对话框</title>
<style type="text/css">
#container{
width: 250px;
height: 350px;
border:1px solid #7b6b6b;
margin: 0 auto;
position: relative;

}

#content{
width: 250px;
height: 300px;
border-bottom: 1px solid #ccc;
overflow-y: auto;

}

#content ul{
margin: 0;
padding: 0;

}

#Img{
width: 30px;
height: 30px;
position: absolute;
left: 10px;
top: 310px;
border-radius: 15px;

}

#txt{
margin: 0;
position: absolute;
left: 50px;
top: 315px;
border-radius: 2px;
border:1px solid #ccc;
width: 133px;
height: 18px;

}

#btn{
margin-right: 10px;
position: absolute;
margin: 0;
left: 197px;
top: 314px;

}

#edit{
background: #ece7e766;
width: 250px;
height: 50px;

}

.showTxt{
width: auto;
height: auto;
max-width: 230px;
background: #008000a8;
border:0;
font-size: 15px;
color: white;
padding: 5px;
border-radius: 2px; 
word-break: break-all;
list-style: none;
margin-top: 5px;
display: list-item;

}

.left{
text-align: left;
margin-left: 50px;
float: left;

}

.right{
text-align: right;
margin-right: 50px;
float: right;

}

.showImg{
width: 26px;
height: 26px;
border-radius: 13px;

 

}

.leftImg{
left: 10px;
position: absolute;

}

.rightImg{
right: 10px;
position: absolute;

}

#scroll{
position: relative;

}

</style>
</head>
<body>

<div id="container">
<div id="content">
<div id="scroll">
<ul id="save"></ul>
</div>
</div>

<div id="edit">
<img src="1.jpg" id="Img">
<input type="text" name="" id="txt">
<input type="button" name="" value="发送" id="btn">
</div>
</div>
<script type="text/javascript">

 //获取元素

var oCont=document.getElementById('content');
var oImg=document.getElementById('Img');
var oTxt=document.getElementById('txt');
var oBtn=document.getElementById('btn');
var oSTxt=document.getElementsByClassName('showTxt');
var oSave=document.getElementById('save');
var num=0;

 //切换头像
oImg.οnclick=function(){
num++;
if(num%2==0)
oImg.src='1.jpg';
else
oImg.src='2.jpg';

}

 //发送事件
oBtn.οnclick= function(){
addCon();

}

function addCon(){ 
//定义需要添加的元素
var newLi=document.createElement("li");
var newImg=document.createElement('img');
//判断聊天的对象是哪一方,文字框出现在左边还是右边
 if(num%2==0){
//添加对话框
newLi.innerHTML=oTxt.value;
newLi.className='showTxt right';
oSave.appendChild(newLi); 
oTxt.value='';
 //添加头像
newImg.src=oImg.src;
newImg.className='showImg rightImg';
newLi.appendChild(newImg); 

 //清除浮动
var div = document.createElement('div');
 div.style = 'clear:both';
 oSave.appendChild(div);
 }else{
 newLi.innerHTML=oTxt.value;
newLi.className='showTxt left';
oSave.appendChild(newLi); 
oTxt.value='';
newImg.src=oImg.src;
newImg.className='showImg leftImg';
newLi.appendChild(newImg);
var div = document.createElement('div');
 div.style = 'clear:both';
 oSave.appendChild(div);

 }

}

</script>
</body>
</html>

页面结果如图:

JavaScript实现简易聊天对话框(加滚动条)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
纯CSS打造的导航菜单(附jquery版)
Aug 07 Javascript
简单几行JS Code实现IE邮件转发新浪微博
Jul 03 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
Jan 02 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
Jun 13 Javascript
HTML5 canvas 9绘制图片实例详解
Sep 06 Javascript
jquery做个日期选择适用于手机端示例
Jan 10 Javascript
js获取隐藏元素的宽高
Feb 24 Javascript
详解React开发中使用require.ensure()按需加载ES6组件
May 12 Javascript
详解Vue爬坑之vuex初识
Jun 14 Javascript
详解Angular.js中$http拦截器的介绍及使用
Jul 04 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
Nov 11 jQuery
vuex如何重置所有state(可定制)
Jan 17 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
Feb 10 #Javascript
node.js中 redis 的安装和基本操作示例
Feb 10 #Javascript
js实现登录拖拽窗口
Feb 10 #Javascript
javascript 原型与原型链的理解及应用实例分析
Feb 10 #Javascript
在 Vue 中使用 JSX 及使用它的原因浅析
Feb 10 #Javascript
node.js使用http模块创建服务器和客户端完整示例
Feb 10 #Javascript
webpack打包优化的几个方法总结
Feb 10 #Javascript
You might like
Smarty中调用FCKeditor的方法
2014/10/27 PHP
php从字符串创建函数的方法
2015/03/16 PHP
php设计模式之委托模式
2016/02/13 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
ExtJS 工具栏 分页事件参数
2010/03/05 Javascript
js中将具有数字属性名的对象转换为数组
2011/03/06 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
js window.print实现打印特定控件或内容
2013/09/16 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
2015/09/08 Javascript
在React框架中实现一些AngularJS中ng指令的例子
2016/03/06 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
Node.js编写爬虫的基本思路及抓取百度图片的实例分享
2016/03/12 Javascript
vue学习笔记之vue1.0和vue2.0的区别介绍
2017/05/17 Javascript
Node.js pipe实现源码解析
2017/08/12 Javascript
Vue ElementUI之Form表单验证遇到的问题
2017/08/21 Javascript
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
JS实现的集合去重,交集,并集,差集功能示例
2018/03/13 Javascript
jQuery动态移除与增加onclick属性的方法详解
2018/06/07 jQuery
layui radio单选限制下一个radio单选的实例
2019/09/03 Javascript
[51:06]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS Liquid
2018/03/30 DOTA
easy_install python包安装管理工具介绍
2013/02/10 Python
python3实现磁盘空间监控
2018/06/21 Python
使用tensorflow实现线性回归
2018/09/08 Python
python的range和linspace使用详解
2019/11/27 Python
自学python用什么系统好
2020/06/23 Python
python 利用panda 实现列联表(交叉表)
2021/02/06 Python
Sunglasses Shop荷兰站:英国最大的太阳镜独立在线零售商和供应商
2017/01/08 全球购物
秋季运动会表扬稿
2014/01/16 职场文书
人力资源经理的岗位职责范本
2014/02/28 职场文书
制药工程专业职业生涯规划范文
2014/03/10 职场文书
2014年社团工作总结范文
2014/11/27 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
白银帝国观后感
2015/06/17 职场文书
重阳节活动主持词
2015/07/04 职场文书
红十字会救护培训简讯
2015/07/20 职场文书
致运动员加油稿
2015/07/21 职场文书