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 解析Json字符串的性能比较分析代码
Dec 16 Javascript
Javascript alert消息换行的方法
Aug 07 Javascript
JS实现div居中示例
Apr 17 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
Sep 03 Javascript
实用框架(iframe)操作代码
Oct 23 Javascript
JavaScript实现搜索框的自动完成功能(一)
Feb 25 Javascript
javascript表单事件处理方法详解
May 15 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
Feb 09 Javascript
vue深入解析之render function code详解
Jul 18 Javascript
详解VueJS 数据驱动和依赖追踪分析
Jul 26 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
Mar 03 Javascript
JS实现字体背景跑马灯
Jan 06 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
PHP+Mysql实现多关键字与多字段生成SQL语句的函数
2014/11/05 PHP
CI框架中redis缓存相关操作文件示例代码
2016/05/17 PHP
JavaScript 设计模式 富有表现力的Javascript(一)
2010/05/26 Javascript
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
JS焦点图切换,上下翻转
2011/05/12 Javascript
JS鼠标事件大全 推荐收藏
2011/11/01 Javascript
node.js中的fs.fsyncSync方法使用说明
2014/12/15 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
2015/03/13 Javascript
javascript截图 jQuery插件imgAreaSelect使用详解
2016/05/04 Javascript
Nodejs进阶:基于express+multer的文件上传实例
2016/11/21 NodeJs
最常见的左侧分类菜单栏jQuery实现代码
2016/11/28 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
vue 虚拟dom的patch源码分析
2018/03/01 Javascript
解决jquery的ajax调取后端数据成功却渲染失败的问题
2018/08/08 jQuery
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
微信小程序制作表格的方法
2019/02/14 Javascript
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
JavaScript实现弹出窗口效果
2020/12/09 Javascript
[01:04:01]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第一场
2014/05/24 DOTA
python使用datetime模块计算各种时间间隔的方法
2015/03/24 Python
在Python中移动目录结构的方法
2016/01/31 Python
详解Python中的相对导入和绝对导入
2017/01/06 Python
python2.7 mayavi 安装图文教程(推荐)
2017/06/22 Python
PyTorch的深度学习入门教程之构建神经网络
2019/06/27 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
2019/09/17 Python
Python FFT合成波形的实例
2019/12/04 Python
通过实例解析Python调用json模块
2019/12/11 Python
Python读取csv文件实例解析
2019/12/30 Python
python程序需要编译吗
2020/06/19 Python
Python实现像awk一样分割字符串
2020/09/15 Python
Python+unittest+requests+excel实现接口自动化测试框架
2020/12/23 Python
Canvas 帧动画吃苹果小游戏
2020/08/05 HTML / CSS
办公自动化专业大学生职业规划书
2014/03/06 职场文书
民主生活会对照检查材料思想汇报
2014/09/27 职场文书
导游词之襄阳古城
2019/09/27 职场文书