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;

以上是 JavaScript仿聊天室聊天记录 的全部内容, 来源链接: utcz.com/z/314259.html

回到顶部