JavaScript仿聊天室聊天记录

本文实例为大家分享了js仿聊天室聊天记录的具体代码,供大家参考,具体内容如下

参考样式(css自定义聊天窗口样式):http://xiazai.jb51.net/201612/yuanma/css3chatstyle(jb51.net).rar

功能描述:

1. 用户在微信公众号里发送内容,参与活动
2. 后台提供类似聊天室的窗口显示用户实时发布的内容

界面截图:

代码:

body {
 padding: 0;
 margin: 0;
 background: -moz-linear-gradient(-45deg, #183850 0, #183850 25%, #192c46 50%, #22254c 75%, #22254c 100%);
 background: -webkit-linear-gradient(-45deg, #183850 0, #183850 25%, #192c46 50%, #22254c 75%, #22254c 100%);
 background-repeat: no-repeat;
 background-attachment: fixed;
} 

::-webkit-scrollbar {
 width: 10px;
} 

::-webkit-scrollbar-track {
 border-radius: 10px;
 background-color: rgba(25, 147, 147, 0.1);
} 

::-webkit-scrollbar-thumb {
 border-radius: 10px;
 background-color: rgba(25, 147, 147, 0.2);
} 

.chat-thread {
 margin: 24px auto 0 auto;
 padding: 0 20px 0 0;
 list-style: none;
 overflow-y: scroll;
 overflow-x: hidden;
} 

.chat-thread .li {
 position: relative;
 clear: both;
 display: inline-block;
 padding: 16px 40px 16px 20px;
 margin: 0 0 20px 0;
 font: 16px/20px 'Noto Sans', sans-serif;
 border-radius: 10px;
 background-color: rgba(25, 147, 147, 0.2);
} 

/* Chat - Avatar */
.chat-thread .img {
 width: 50px;
 height: 50px;
 border-radius: 50px;
 content: '';
 float:left; 

} 

/* Chat - Speech Bubble Arrow */
.chat-thread li:after {
 position: absolute;
 top: 15px;
 content: '';
 width: 0;
 height: 0;
 border-top: 15px solid rgba(25, 147, 147, 0.2);
} 

.chat-thread li:nth-child(odd) {
 animation: show-chat-odd 0.15s 1 ease-in;
 -moz-animation: show-chat-odd 0.15s 1 ease-in;
 -webkit-animation: show-chat-odd 0.15s 1 ease-in;
 float: right;
 margin-right: 80px;
 color: #0AD5C1;
} 

.chat-thread li:nth-child(odd):before {
 right: -80px;
} 

.chat-thread li:nth-child(odd):after {
 border-right: 15px solid transparent;
 right: -15px;
} 

.chat-thread li:nth-child(even) {
 animation: show-chat-even 0.15s 1 ease-in;
 -moz-animation: show-chat-even 0.15s 1 ease-in;
 -webkit-animation: show-chat-even 0.15s 1 ease-in;
 float: left;
 margin-left: 80px;
 color: #0EC879;
} 

.chat-thread li:nth-child(even):before {
 left: -80px;
} 

.chat-thread li:nth-child(even):after {
 border-left: 15px solid transparent;
 left: -15px;
} 

.chat-window {
 position: fixed;
 bottom: 18px;
} 

.chat-window-message {
 width: 100%;
 height: 48px;
 font: 32px/48px 'Noto Sans', sans-serif;
 background: none;
 color: #0AD5C1;
 border: 0;
 border-bottom: 1px solid rgba(25, 147, 147, 0.2);
 outline: none;
} 

/* Small screens */
@media all and (max-width: 767px) {
 .chat-thread {
 width: 90%;
 height: 500px;
 } 

 .chat-window {
 left: 5%;
 width: 90%;
 }
}
/* Medium and large screens */
@media all and (min-width: 768px) {
 .chat-thread {
 width: 70%;
 height: 500px;
 } 

 .chat-window {
 left: 25%;
 width: 50%;
 }
}
@keyframes show-chat-even {
 0% {
 margin-left: -480px;
 } 

 100% {
 margin-left: 0;
 }
}
@-moz-keyframes show-chat-even {
 0% {
 margin-left: -480px;
 } 

 100% {
 margin-left: 0;
 }
}
@-webkit-keyframes show-chat-even {
 0% {
 margin-left: -480px;
 } 

 100% {
 margin-left: 0;
 }
}
@keyframes show-chat-odd {
 0% {
 margin-right: -480px;
 } 

 100% {
 margin-right: 0;
 }
}
@-moz-keyframes show-chat-odd {
 0% {
 margin-right: -480px;
 } 

 100% {
 margin-right: 0;
 }
}
@-webkit-keyframes show-chat-odd {
 0% {
 margin-right: -480px;
 } 

 100% {
 margin-right: 0;
 }
}
.credits{
 text-align:center;
 margin-top:35px;
 color: rgba(255, 255, 255, 0.35);
 font-family: 'Noto Sans', sans-serif;
}
.credits a{
 text-decoration:none;
 color: rgba(255, 255, 255, 0.35);
}
<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>红包详情</title>
 <meta name="keywords" content="keyword1,keyword2,keyword3">
 <meta name="description" content="this is my page">
 <meta name="content-type" content="text/html; charset=UTF-8">
 <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
 <script src="../js/jquery-1.7.2.min.js"></script>
 <link rel="stylesheet" href="css/style.css" media="screen" type="text/css" />
 </head>
 <body >
 <div id="convo" class="chat-thread"></div>
 </body>
 <script type="text/javascript">
 var maxId = 0;
 var ip = "http://...";
 var imgArr=new Array();
 var contentArr=new Array();
 var canAdd = false;
 function loadUser(){
  $.post("../servlet/luckDraw", // 访问后台查询数据
    {
    type : "messageList",
    limit : 5,
    maxId : maxId,
    time : new Date()
    },
    function(data,status){
    var jsonobj=eval('('+data+')');
    if(jsonobj.code=="200"){
     canAdd = false;
     imgArr=new Array();
     contentArr=new Array();
     var jsonarr = jsonobj.list;
     var str = "";
     for(var i=0;i<jsonarr.length;i++){
      //console.log(time1);
      imgArr[i] = ip+jsonarr[i].headImg;
      contentArr[i] = jsonarr[i].content;
      maxId = jsonarr[i].id;
     }
     canAdd = true;
    }
  });
 }
 loadUser();
 //var t1 = window.setTimeout(time(1),1000);
 var t1 = window.setInterval(time,3000);
 function time(){
  if(!canAdd)
   return;
  if(imgArr.length==0){
   loadUser();
   return;
  }
  var img = imgArr[0];
  var content = contentArr[0];
  imgArr.splice(0, 1);
  contentArr.splice(0, 1);
  $("#convo").append('<div>'+
    '<div style="width:60px;height:50px;float:left">
     <img alt="" height="50px" width="50px" class="img" src="'+img+'"></div>'+
    '<div style="width:90%;float:left;"><span class="li">'+content+'</span>
    </div>'+ '</div>');
  var e=document.getElementById("convo");//保持滚动条一直在最底部
  e.scrollTop=e.scrollHeight;
 }
</script>
</html>
String sql = "SELECT c.*,u.nickName,u.headImg "
    + "from wx_costomersendmessage c,bid_user u "
    + "where c.openId=u.openId and c.id>"+maxId
    +" order by c.id Limit 0,"+limit;

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

(0)

相关推荐

  • js编写简单的聊天室功能

    这个聊天室写的特别简易,比较适合刚开始学习js的同学借鉴,当然,写的不好,也希望诸位大神可以进行批评改正. 聊天室要求: 1.不能发空消息 2.敏感字***显示 3.图片替换 开心,尴尬 4.显示聊天内容和时间 5.每发一条信息,随机显示名称,先把一些名称定义到array里面 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> &

  • Node.js利用Net模块实现多人命令行聊天室的方法

    这篇文章介绍的是Node.js利用Net模块实现命令行式的多人聊天室,下面话不多说,来看看详细的介绍吧. 1.net模块基本API 要使用Node.js的net模块实现一个命令行聊天室,就必须先了解NET模块的API使用.NET模块API分为两大类: Server和Socket类.工厂方法. Server类如下图所示: net.Server类可以用来创建一个TCP或本地服务器,继承了EventEmitter. Socket类如下: net.Socket类一般用创建一个socket客户端或者是ne

  • 使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室

    一,利用Node搭建静态服务器 这个是这个项目的底层支撑部分.用来支持静态资源文件像html, css, gif, jpg, png, javascript, json, plain text等等静态资源的访问.这里面是有一个mime类型的文件映射. mime.js /** * mime类型的 map * @ author Cheng Liufeng * @ date 2014/8/30 * 当请求静态服务器文件的类型 html, css, gif, jpg, png, javascript,

  • Node.js中使用socket创建私聊和公聊聊天室

    先给大家展示效果图: 在上篇文章给大家介绍使用Angular和Nodejs.socket.io搭建聊天室及多人聊天室,本文继续介绍Node.js中使用socket创建私聊和公聊聊天室,具体详情请看下文吧. nodejs的应用中,关于socket应该是比较出彩的了,socket.io在github上有几万人的star,它的成功应该是不输于express的,为了方便了解整个socket.io的使用. 例子请点击http://chat.lovewebgames.com/ 源码下载https://git

  • Node.js制作简单聊天室

    看了TCP的有关知识,写了个基于NET的聊天室. var net = require('net'); var count = 0, users = {}; var server = net.createServer(function (conn) { console.log('连接到'); conn.write( "\r\n > welcome to node-chat!" + "\r\n > " + count + " other peopl

  • Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室

    为更好的运用这两天学到的Ajax的相关的知识,就做了个简单的在线网络聊天室. 思路 实现聊天室,基本上就是通过Ajax来传递数据,让PHP来实现对数据的差入和查找,再交给前端JavaScript实现页面的更新,达到即时聊天的功能. 消息显示区 消息显示区就是一个DIV块,我们会借助Ajax获取到服务器端信息之后,使用JavaScript来更新页面. <h3>消息显示区</h3> <div id="up"> </div> <hr /&

  • nodejs实现的一个简单聊天室功能分享

    今天我来实现一个简单的聊天室,后台用nodejs, 客户端与服务端通信用socket.io,这是一个比较成熟的websocket框架. 初始工作 1.安装express, 用这个来托管socket.io,以及静态页面,命令npm install express --save,--save可以使包添加到package.json文件里. 2.安装socket.io,命令npm install socket.io --save. 编写服务端代码 首先我们通过express来托管网站,并附加到socke

  • 玩转NODE.JS(四)-搭建简单的聊天室的代码

    Nodejs好久没有跟进了,最近想用它搞一个聊天室,然后便偶遇了socket.io这个东东,说是可以用它来简单的实现实时双向的基于事件的通讯机制.我便看了一些个教程使用它来搭建一个超级简单的聊天室. 初始化项目 在电脑里新建一个文件夹,叫做"chatroom",然后使用npm进行初始化: $ npm init 然后根据提示以及相关信息一步一步输入,当然也可以一路回车下去,之后会在项目里生成一个package.json文件,里面的信息如下: $ cat package.json { &q

  • AngularJS+Node.js实现在线聊天室

    不得不说,上手AngularJS比我想象得难多了,把官网提供的PhoneCat例子看完,又跑到慕课网把大漠穷秋的AngularJS实战系列看了一遍,对于基本的使用依然有很多说不清道不明的疑惑,于是决定通过做一个在线聊天室帮助理解.DEMO可以戳→chat room,代码可以戳→ChatRoom-AngularJS. 清晰图可以戳 http://files.jb51.net/file_images/article/201508/201508281040051.gif 功能 着手开发之前,首先明确一

  • 基于javascript、ajax、memcache和PHP实现的简易在线聊天室

    在线聊天室(online chatrooms)是一个共多人进行沟通交流的网络平台,随着越来越多的新技术的发明和成熟运用,在线聊天室也出现使用各种不同技术的, 这篇文章我想简单总结一下. 首先说一下前台技术,最新的当然是基于HTML5的websocket,它实现了浏览器与服务器全双工通信(full-duplex).WebSocket通信协议于2011年被IETF定为标准 RFC 6455,WebSocketAPI被W3C定为标准.在WebSocket API中,浏览器和服务器只需要做一个握手的动作

随机推荐