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 相关文章推荐
Javascript Math对象
Aug 13 Javascript
javascript 获取所有id中包含某关键字的控件的实现代码
Nov 25 Javascript
理解JavaScript中的对象 推荐
Jan 09 Javascript
编写针对IE的JS代码两种编写方法
Jan 30 Javascript
jQuery图片轮播滚动切换代码分享
Apr 20 Javascript
快速学习JavaScript的6个思维技巧
Oct 13 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
Apr 24 Javascript
js canvas实现简单的图像扩散效果
Jun 28 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
Sep 29 Javascript
如何实现一个简易版的vuex持久化工具
Sep 11 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
Jun 29 Javascript
vue下载二进制流图片操作
Oct 26 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
NT IIS下用ODBC连接数据库
2006/10/09 PHP
生成sessionid和随机密码的例子
2006/10/09 PHP
两种php去除二维数组的重复项方法
2015/11/04 PHP
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
PHP关键特性之命名空间实例详解
2017/05/06 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
jQuery+ajax实现顶一下,踩一下效果
2010/07/17 Javascript
在javascript中关于节点内容加强
2013/04/11 Javascript
jquery foreach使用示例
2013/09/12 Javascript
jquery单选框radio绑定click事件实现方法
2015/01/14 Javascript
JavaScript各类型的关系图解
2015/10/16 Javascript
AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
2017/01/19 Javascript
Angular中ng-bind和ng-model的区别实例详解
2017/04/10 Javascript
源码分析Vue.js的监听实现教程
2017/04/23 Javascript
JavaScript数组push方法使用注意事项
2017/10/30 Javascript
解决Mac安装thrift因bison报错的问题
2018/05/17 Javascript
详解VUE调用本地json的使用方法
2019/05/15 Javascript
[45:59]完美世界DOTA2联赛PWL S2 FTD vs GXR 第二场 11.22
2020/11/24 DOTA
使用python开发vim插件及心得分享
2014/11/04 Python
TensorFlow实现Batch Normalization
2018/03/08 Python
python print出共轭复数的方法详解
2019/06/25 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
Python 函数用法简单示例【定义、参数、返回值、函数嵌套】
2019/09/20 Python
python通过opencv实现图片裁剪原理解析
2020/01/19 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
python实现人像动漫化的示例代码
2020/05/17 Python
python如何保存文本文件
2020/06/07 Python
用html5的canvas和JavaScript创建一个绘图程序的简单实例
2016/07/06 HTML / CSS
经典演讲稿范文
2013/12/30 职场文书
教师党员思想汇报
2014/01/06 职场文书
班主任个人工作反思
2014/04/28 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
免职证明样本
2014/10/23 职场文书
班主任工作实习计划
2015/01/16 职场文书
电影建党伟业观后感
2015/06/01 职场文书
大学生心理健康教育心得体会
2016/01/12 职场文书