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 相关文章推荐
Locate a File Using a File Open Dialog Box
Jun 18 Javascript
Javascript笔记一 js以及json基础使用说明
May 22 Javascript
用Jquery实现滚动新闻
Feb 12 Javascript
JS中三目运算符和if else的区别分析与示例
Nov 21 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
Feb 03 Javascript
javascript版2048小游戏
Mar 18 Javascript
JavaScript使用cookie记录临时访客信息的方法
Apr 07 Javascript
详解javascript高级定时器
Dec 31 Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
May 12 Javascript
Extjs表单输入框异步校验的插件实现方法
Mar 20 Javascript
jquery实现静态搜索功能(可输入搜索文字)
Mar 28 jQuery
JavaScrpt中如何使用 cookie 设置查看与删除功能
Jul 09 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表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
2013/08/09 PHP
神盾加密解密教程(一)PHP变量可用字符
2014/05/28 PHP
PHP中使用socket方式GET、POST数据实例
2015/04/02 PHP
必须收藏的php实用代码片段
2016/02/02 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
PHP+Ajax实现的检测用户名功能简单示例
2019/02/12 PHP
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
jQuery中mouseover事件用法实例
2014/12/26 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
jQuery添加和删除指定标签的方法
2015/12/16 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
AngularJS中的Promise详细介绍及实例代码
2016/12/13 Javascript
配置nodejs环境的方法
2017/05/13 NodeJs
php结合js实现多条件组合查询
2019/05/28 Javascript
JS如何实现封装列表右滑动删除收藏按钮
2020/07/23 Javascript
Element Card 卡片的具体使用
2020/07/26 Javascript
vue全局使用axios的操作
2020/09/08 Javascript
Python中几种操作字符串的方法的介绍
2015/04/09 Python
Python做文本按行去重的实现方法
2016/10/19 Python
Python爬虫之模拟知乎登录的方法教程
2017/05/25 Python
解决pycharm工程启动卡住没反应的问题
2019/01/19 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
python Django的web开发实例(入门)
2019/07/31 Python
Python预测2020高考分数和录取情况
2020/07/08 Python
css3 2D图片转动样式可以扩充到Js当中
2014/04/29 HTML / CSS
美国网上书店:Barnes & Noble
2018/08/15 全球购物
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
写出二分查找算法的两种实现
2013/05/13 面试题
C#基础面试题
2016/10/17 面试题
英语演讲稿范文
2014/01/03 职场文书
国窖1573广告词
2014/03/21 职场文书
篮球赛口号
2014/06/18 职场文书
公司酒会致辞
2015/07/30 职场文书
详解CSS故障艺术
2021/05/25 HTML / CSS
redis 解决库存并发问题实现数量控制
2022/04/08 Redis