html5开发的仿微信网页版聊天,采用html5+css3+jquery+websocket+amazeui等技术混合架构开发,实现了微信网页版的主要功能。

更新

  • 2019-01-07 新增发送图片与文件、下载功能
  • 2019-01-05 新增群聊

源码地址:https://github.com/yangsphp/wechat-master

一、效果图

二、前端参考代码

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>仿微信电脑版聊天</title>
<link rel="stylesheet" href="css/amazeui.min.css" />
<link rel="stylesheet" href="css/main.css" />
</head>
<body>
<div class="box">
<div class="wechat"> <div class="sidestrip">
<div class="am-dropdown" data-am-dropdown>
<!--头像插件-->
<div class="own_head am-dropdown-toggle"></div>
<div class="am-dropdown-content">
<div class="own_head_top">
<div class="own_head_top_text">
<p class="own_name">彭于晏丶plus<img src="data:images/icon/head.png" alt="" /></p>
<p class="own_numb">微信号:123456</p>
</div>
<img src="data:images/own_head.jpg" alt="" />
</div>
<div class="own_head_bottom">
<p><span>地区</span>江西 九江</p>
<div class="own_head_bottom_img">
<a href=""><img src="data:images/icon/head_1.png"/></a>
<a href=""><img src="data:images/icon/head_2.png"/></a>
</div>
</div>
</div>
</div>
<!--三图标-->
<div class="sidestrip_icon">
<a id="si_1" style="background: url(images/icon/head_2_1.png) no-repeat;"></a>
<a id="si_2"></a>
<a id="si_3"></a>
</div> <!--底部扩展键-->
<div id="doc-dropdown-justify-js">
<div class="am-dropdown" id="doc-dropdown-js" style="position: initial;">
<div class="sidestrip_bc am-dropdown-toggle"></div>
<ul class="am-dropdown-content" style="">
<li>
<a href="#" data-am-modal="{target: '#doc-modal-1', closeViaDimmer: 0, width: 400, height: 225}">意见反馈</a>
<div class="am-modal am-modal-no-btn" tabindex="-1" id="doc-modal-1">
<div class="am-modal-dialog">
<div class="am-modal-hd">Modal 标题
<a href="javascript: void(0)" class="am-close am-close-spin" data-am-modal-close>&times;</a>
</div>
<div class="am-modal-bd">
Modal 内容。本 Modal 无法通过遮罩层关闭。
</div>
</div>
</div>
</li> <li><a href="#">备份与恢复</a></li>
<li><a href="#">设置</a></li>
</ul>
</div>
</div>
</div> <!--聊天列表-->
<div class="middle on">
<div class="wx_search">
<input type="text" placeholder="搜索"/>
<button>+</button>
</div>
<div class="office_text">
<ul class="user_list">
<li class="user_active">
<div class="user_head"><img src="data:images/head/15.jpg"/></div>
<div class="user_text">
<p class="user_name">早安无恙</p>
<p class="user_message">我是傻逼!,金少凯牛逼!</p>
</div>
<div class="user_time">下午 2:54</div>
</li>
<li>
<div class="user_head"><img src="data:images/head/2.jpg"/></div>
<div class="user_text">
<p class="user_name">夏继涛</p>
<p class="user_message">[小程序]</p>
</div>
<div class="user_time">上午 11:03</div>
</li>
<li>
<div class="user_head"><img src="data:images/head/3.jpg"/></div>
<div class="user_text">
<p class="user_name">十里老街秋名山车神车队</p>
<p class="user_message">乞讨两块交个话费</p>
</div>
<div class="user_time">昨天</div>
</li>
<li>
<div class="user_head"><img src="data:images/head/4.jpg"/></div>
<div class="user_text">
<p class="user_name">阿杰</p>
<p class="user_message">[动画表情]</p>
</div>
<div class="user_time">昨天</div>
</li>
<li>
<div class="user_head"><img src="data:images/head/5.jpg"/></div>
<div class="user_text">
<p class="user_name">订阅号</p>
<p class="user_message">庐山国际水彩艺术节:</p>
</div>
<div class="user_time">星期三</div>
</li>
<li>
<div class="user_head"><img src="data:images/head/6.jpg"/></div>
<div class="user_text">
<p class="user_name">小龙网食品</p>
<p class="user_message">槟榔的100种吃法</p>
</div>
<div class="user_time">星期二</div>
</li>
<li>
<div class="user_head"><img src="data:images/head/7.jpg"/></div>
<div class="user_text">
<p class="user_name">文件传输助手</p>
<p class="user_message"></p>
</div>
<div class="user_time">星期二</div>
</li>
<li>
<div class="user_head"><img src="data:images/head/8.jpg"/></div>
<div class="user_text">
<p class="user_name">陈明杰</p>
<p class="user_message">妈的,你在聊我</p>
</div>
<div class="user_time">星期四</div>
</li>
<li>
<div class="user_head"><img src="data:images/head/9.jpg"/></div>
<div class="user_text">
<p class="user_name">妈</p>
<p class="user_message">面</p>
</div>
<div class="user_time">星期四</div>
</li>
<li>
<div class="user_head"><img src="data:images/head/10.jpg"/></div>
<div class="user_text">
<p class="user_name">土豆</p>
<p class="user_message">[图片]</p>
</div>
<div class="user_time"></div>
</li>
<li>
<div class="user_head"><img src="data:images/head/11.jpg"/></div>
<div class="user_text">
<p class="user_name">Emmera</p>
<p class="user_message"></p>
</div>
<div class="user_time"></div>
</li>
<li>
<div class="user_head"><img src="data:images/head/12.jpg"/></div>
<div class="user_text">
<p class="user_name">彭于晏丶plus</p>
<p class="user_message">我送20个都他妈的能赢,这群鬼人真的恐怖</p>
</div>
<div class="user_time"></div>
</li>
</ul>
</div>
</div> <!--好友列表-->
<div class="middle">
<div class="wx_search">
<input type="text" placeholder="搜索"/>
<button>+</button>
</div>
<div class="office_text">
<ul class="friends_list">
<li>
<p>新的朋友</p>
<div class="friends_box">
<div class="user_head"><img src="data:images/head/1.jpg"/></div>
<div class="friends_text">
<p class="user_name">新的朋友</p>
</div>
</div>
</li>
<li>
<p>公众号</p>
<div class="friends_box">
<div class="user_head"><img src="data:images/head/2.jpg"/></div>
<div class="friends_text">
<p class="user_name">公众号</p>
</div>
</div>
</li>
<li>
<p>A</p>
<div class="friends_box">
<div class="user_head"><img src="data:images/head/3.jpg"/></div>
<div class="friends_text">
<p class="user_name">彭于晏丶plus</p>
</div>
</div>
<div class="friends_box">
<div class="user_head"><img src="data:images/head/4.jpg"/></div>
<div class="friends_text">
<p class="user_name">陈依依</p>
</div>
</div>
<div class="friends_box">
<div class="user_head"><img src="data:images/head/5.jpg"/></div>
<div class="friends_text">
<p class="user_name">毛毛</p>
</div>
</div>
</li>
<li>
<p>B</p>
<div class="friends_box">
<div class="user_head"><img src="data:images/head/6.jpg"/></div>
<div class="friends_text">
<p class="user_name">苏笑言</p>
</div>
</div>
<div class="friends_box">
<div class="user_head"><img src="data:images/head/7.jpg"/></div>
<div class="friends_text">
<p class="user_name">往事不再提</p>
</div>
</div>
</li>
<li>
<p>C</p>
<div class="friends_box">
<div class="user_head"><img src="data:images/head/8.jpg"/></div>
<div class="friends_text">
<p class="user_name">夏继涛</p>
</div>
</div>
<div class="friends_box">
<div class="user_head"><img src="data:images/head/9.jpg"/></div>
<div class="friends_text">
<p class="user_name">早安无恙</p>
</div>
</div>
<div class="friends_box">
<div class="user_head"><img src="data:images/head/10.jpg"/></div>
<div class="friends_text">
<p class="user_name">王鹏</p>
</div>
</div>
</li>
<li>
<p>D</p>
<div class="friends_box">
<div class="user_head"><img src="data:images/head/11.jpg"/></div>
<div class="friends_text">
<p class="user_name">涨了潮了</p>
</div>
</div>
<div class="friends_box">
<div class="user_head"><img src="data:images/head/12.jpg"/></div>
<div class="friends_text">
<p class="user_name">Ktz丶中融资</p>
</div>
</div>
</li>
</ul>
</div>
</div> <!--程序列表-->
<div class="middle">
<div class="wx_search">
<input type="text" placeholder="搜索收藏内容"/>
<button>+</button>
</div>
<div class="office_text">
<ul class="icon_list">
<li class="icon_active">
<div class="icon"><img src="data:images/icon/icon.png" alt="" /></div>
<span>全部收藏</span>
</li>
<li>
<div class="icon"><img src="data:images/icon/icon1.png" alt="" /></div>
<span>链接</span>
</li>
<li>
<div class="icon"><img src="data:images/icon/icon2.png" alt="" /></div>
<span>相册</span>
</li>
<li>
<div class="icon"><img src="data:images/icon/icon3.png" alt="" /></div>
<span>笔记</span>
</li>
<li>
<div class="icon"><img src="data:images/icon/icon4.png" alt="" /></div>
<span>文件</span>
</li>
<li>
<div class="icon"><img src="data:images/icon/icon5.png" alt="" /></div>
<span>音乐</span>
</li>
<li>
<div class="icon"><img src="data:images/icon/icon6.png" alt="" /></div>
<span>标签</span>
</li>
</ul>
</div>
</div> <!--聊天窗口-->
<div class="talk_window">
<div class="windows_top">
<div class="windows_top_box">
<span>早安无恙</span>
<ul class="window_icon">
<li><a href=""><img src="data:images/icon/icon7.png"/></a></li>
<li><a href=""><img src="data:images/icon/icon8.png"/></a></li>
<li><a href=""><img src="data:images/icon/icon9.png"/></a></li>
<li><a href=""><img src="data:images/icon/icon10.png"/></a></li>
</ul>
<div class="extend" class="am-btn am-btn-success" data-am-offcanvas="{target: '#doc-oc-demo3'}"></div>
<!-- 侧边栏内容 -->
<div id="doc-oc-demo3" class="am-offcanvas">
<div class="am-offcanvas-bar am-offcanvas-bar-flip">
<div class="am-offcanvas-content">
<p><a href="http://music.163.com/#/song?id=385554" target="_blank">网易音乐</a></p>
</div>
</div>
</div>
</div>
</div> <!--聊天内容-->
<div class="windows_body">
<div class="office_text" style="height: 100%;">
<ul class="content" id="chatbox">
<li class="me"><img src="data:images/own_head.jpg" title="金少凯"><span>疾风知劲草,板荡识诚臣</span></li>
<li class="other"><img src="data:images/head/15.jpg" title="张文超"><span>勇夫安知义,智者必怀仁</span></li>
</ul>
</div>
</div> <div class="windows_input" id="talkbox">
<div class="input_icon">
<a href="javascript:;"></a>
<a href="javascript:;"></a>
<a href="javascript:;"></a>
<a href="javascript:;"></a>
<a href="javascript:;"></a>
<a href="javascript:;"></a>
</div>
<div class="input_box">
<textarea name="" rows="" cols="" id="input_box"></textarea>
<button id="send">发送(S)</button>
</div>
</div>
</div>
</div>
</div> <script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/amazeui.min.js"></script>
<script type="text/javascript" src="js/zUI.js"></script>
<script type="text/javascript" src="js/wechat.js"></script> <script type="text/javascript">
//三图标
window.onload=function(){
function a(){
var si1 = document.getElementById('si_1');
var si2 = document.getElementById('si_2');
var si3 = document.getElementById('si_3');
si1.onclick=function(){
si1.style.background="url(images/icon/head_2_1.png) no-repeat"
si2.style.background="";
si3.style.background="";
};
si2.onclick=function(){
si2.style.background="url(images/icon/head_3_1.png) no-repeat"
si1.style.background="";
si3.style.background="";
};
si3.onclick=function(){
si3.style.background="url(images/icon/head_4_1.png) no-repeat"
si1.style.background="";
si2.style.background="";
};
};
function b(){
var text = document.getElementById('input_box');
var chat = document.getElementById('chatbox');
var btn = document.getElementById('send');
var talk = document.getElementById('talkbox');
btn.onclick=function(){
if(text.value ==''){
alert('不能发送空消息');
}else{
chat.innerHTML += '<li class="me"><img src="'+'images/own_head.jpg'+'"><span>'+text.value+'</span></li>';
text.value = '';
chat.scrollTop=chat.scrollHeight;
talk.style.background="#fff";
text.style.background="#fff";
};
};
};
a();
b();
};
</script> </body>
</html>

2019-01-07

PHP 之CI框架+GatewayWorker+AmazeUI低仿微信聊天网页版的更多相关文章

  1. iOS 即时通讯 + 仿微信聊天框架 + 源码

    这些你造吗? 即时通讯(IM),在IOS这片江湖里面已经算是一个老者了,我这小旋风也是在很早以前巡山的时候,就知道有即时通讯这个妖怪,以前也多多少少接触过一些,在造APP的时候用过,哎呀,说着说着就感 ...

  2. uni-app聊天室|vue+uniapp仿微信聊天实例|uniapp仿微信App界面

    一.介绍 运用UniApp+Vue+Vuex+swiper+uniPop等技术开发的仿微信原生App聊天室|仿微信聊天界面实例项目uniapp-chatroom,实现了发送图文消息.表情(gif图), ...

  3. Android -- 真正的 高仿微信 打开网页的进度条效果

    (本博客为原创,http://www.cnblogs.com/linguanh/) 目录: 一,为什么说是真正的高仿? 二,为什么要搞缓慢效果? 三,我的实现思路 四,代码,内含注释 五,使用方法与截 ...

  4. CSS3 仿微信聊天小气泡

    今天给大家分享一个我刚做的项目中的一个小案例, 因为我们在做一个聊天的功能,之前的聊天页面UI很丑,我就不在这里展示给大家了. 现在就教大家怎么用css3制作一个和微信聊天界面一样的页面. 首先给大家 ...

  5. web版仿微信聊天界面|h5仿微信电脑端案例开发

    前几天开发了一款手机端h5仿微信聊天,人唯有不停学习才能进步,这段时间倒腾着整理了下之前项目,又重新在原先的那版基础上开发了一款仿微信聊天电脑端web版本,聊天页面又重新优化了多图预览.视频播放,右键 ...

  6. h5仿微信聊天(高仿版)、微信聊天表情|对话框|编辑器

    之前做过一版h5微信聊天移动端,这段时间闲来无事就整理了下之前项目,又重新在原先的那版基础上升级了下,如是就有了现在的h5仿微信聊天高仿版,新增了微聊.通讯录.探索.我四个模块 左右触摸滑屏切换,聊天 ...

  7. HTML5仿微信聊天界面、微信朋友圈实例

    这几天使用H5开发了一个仿微信聊天前端界面,尤其微信底部编辑器那块处理的很好,使用HTML5来开发,虽说功能效果并没有微信那么全,但是也相当不错了,可以发送消息.表情,发送的消息自动回滚定位到底部,另 ...

  8. Vue3.0聊天室|vue3+vant3仿微信聊天实例|vue3.x仿微信app界面

    一.项目简介 基于Vue3.0+Vant3.x+Vuex4.x+Vue-router4+V3Popup等技术开发实现的仿微信手机App聊天实例项目Vue3-Chatroom.实现了发送图文表情消息/g ...

  9. CI框架 QQ接口(第三方登录接口PHP版)

    本帖内容较多,大部分都是源码,要修改的地方只有一个,其他只要复制过去,就可以完美运行.本帖主要针对CI框架,不用下载SDK,按我下面的步骤,建文件,复制代码就可以了.10分钟不要,接口就可完成.第一步 ...

随机推荐

  1. CentOS && Ubuntu 环境下 Docker 的安装配置

    CentOS 7 install Docker Docker 支持的 centos 版本:CentOS 6.5(64-bit)或更高的版本 使用 yum 安装 1)确保 yum 包更新到最新 [roo ...

  2. ubuntu下使用JNI Java调用C++的例子

    TestJNI.java public class TestJNI { static{ System.load("/home/buyizhiyou/workspace/JNI/src/lib ...

  3. Android应用查看本地数据库

    使用Android Studio 视图==>工具窗口 == >Device File Explorer ==> 文件在 data/data目录下,你的应用程序报名,右键save as ...

  4. java - day013 - 流, FileInputStream, BufferedInputStream,

    流 Stream 把数据的读写,抽象成数据在管道中流动. 流是单向的 输入流, 只能用来读取数据 输出流, 只能用来输出数据 流只能顺序读写数据 流只能一次性从头到尾读写数据 流动过的数据,不能反复流 ...

  5. microsoft office 2007 在已经安装pdf maker的情况下另存为没有adobe pdf选项

    通常,此类情况是pdf maker 插件被禁用导致,点击office 2007左上角菜单栏,选项,加载项,在管理处选择禁用项目, 找到acrobat pdf maker office com addi ...

  6. ArrayList之foreach循环删除倒数第二个元素,不触发fail-fast机制

    今天一朋友问了个问题,对于如下一段代码,运行后会有怎样的结果? public class ArrayListTest { public static void main(String[] args) ...

  7. osi七层网络模型(一)

    在网络中OSI分为七层网络模型,怎么理解七层模型呢?简单理解我们的手机都有手机壳.屏幕.摄像头.电池.芯片等很多原件,每个原件都是由不同的 厂家生产,最终组装成了一部功能完整的手机,同样,在网络中,也 ...

  8. lua游戏开发易错踩坑录

    一.local local函数一定要在调用之前定义(切记,不然会报错或者不能调用该函数) 情况1:监听调此函数后定义 base.model:addlistener("被监听的函数" ...

  9. golang Methods on structs

    原文:http://golangtutorials.blogspot.com/2011/06/methods-on-structs.html snmp 下载,有空学习一下! https://sourc ...

  10. ArcGIS + Python 批量裁剪、添加X/Y坐标脚本

    前言 前一段时间,同事拿来的数据范围太大,用不了那么多(只需要一个乡镇的,结果拿来区县的),太多了加载也是问题.所以就让我给处理下. 由于文件较多,手动裁剪的话,我一个一个用ArcGIS工具箱中的工具 ...