基于javascript制作微信聊天面板


Posted in Javascript onAugust 09, 2020

本文实例分享了javascript制作微信聊天面板的相关代码,具体内容如下

先上图吧

基于javascript制作微信聊天面板

点击头像更换说话对象,简单说下实现原理,html中创建一个ul用于存放所有说话的内容,对话内容是有javascript 动态生成,

主要难点:先布局好css,当时奥巴马发送时候,让这个li有浮动,当是小胖时候,让这个li左浮动。

代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>模拟短信发送</title>
 <style>
 * {
  margin: 0;
  padding: 0;
  list-style: none;
  font-family: '微软雅黑'
 }
 #container {
  width: 450px;
  height: 780px;
  background: #eee;
  margin: 80px auto 0;
  position: relative;
  box-shadow: 20px 20px 55px #777;
 }
 .header {
  background: #000;
  height: 34px;
  color: #fff;
  line-height: 34px;
  font-size: 20px;
  padding: 0 10px;
 }
 .footer {
  width: 430px;
  height: 50px;
  background: #666;
  position: absolute;
  bottom: 0;
  padding: 10px;
 }
 .footer input {
  width: 275px;
  height: 45px;
  outline: none;
  font-size: 20px;
  text-indent: 10px;
  position: absolute;
  border-radius: 6px;
  right: 80px;
 }
 .footer span {
  display: inline-block;
  width: 62px;
  height: 48px;
  background: #ccc;
  font-weight: 900;
  line-height: 45px;
  cursor: pointer;
  text-align: center;
  position: absolute;
  right: 10px;
  border-radius: 6px;
 }
 .footer span:hover {
  color: #fff;
  background: #999;
 }
 #icon {
  display: inline-block;
  background: red;
  width: 60px;
  height: 60px;
  border-radius: 30px;
  position: absolute;
  bottom: 6px;
  left: 14px;
  cursor: pointer;
  overflow: hidden;
 }
 img {
  width: 60px;
  height: 60px;
 }
 .content {
  font-size: 20px;
  width: 435px;
  height: 662px;
  overflow: auto;
  padding: 5px;
 }
 .content li {
  margin-top: 10px;
  padding-left: 10px;
  width: 412px;
  display: block;
  clear: both;
  overflow: hidden;
 }
 .content li img {
  float: left;
 }
 .content li span{
  background: #7cfc00;
  padding: 10px;
  border-radius: 10px;
  float: left;
  margin: 6px 10px 0 10px;
  max-width: 310px;
  border: 1px solid #ccc;
  box-shadow: 0 0 3px #ccc;
 }
 .content li img.imgleft { 
  float: left; 
 }
 .content li img.imgright { 
  float: right; 
 }
 .content li span.spanleft { 
  float: left;
  background: #fff;
 }
 .content li span.spanright { 
  float: right;
  background: #7cfc00;
 }
 </style>
 <script>
 window.onload = function(){
  var arrIcon = ['img/1.jpg','img/2.jpg'];
  var num = 0; //控制头像改变
  var iNow = -1; //用来累加改变左右浮动
  var icon = document.getElementById('icon').getElementsByTagName('img');
  var btn = document.getElementById('btn');
  var text = document.getElementById('text');
  var content = document.getElementsByTagName('ul')[0];
  var img = content.getElementsByTagName('img');
  var span = content.getElementsByTagName('span');

  icon[0].onclick = function(){
  if(num==0){
   this.src = arrIcon[1];
   num = 1;
  }else if(num==1){
   this.src = arrIcon[0];
   num = 0;
  }  
  }
  btn.onclick = function(){
  if(text.value ==''){
   alert('发送内容不能为空');
  }else {
   content.innerHTML += '<li><img src="'+arrIcon[num]+'"><span>'+text.value+'</span></li>';
   iNow++;
   if(num==0){
   img[iNow].className += 'imgright';
   span[iNow].className += 'spanright';
   }else {
   img[iNow].className += 'imgleft';
   span[iNow].className += 'spanleft';
   }
   text.value = '';
  }
  }
 }
 </script>
</head>
<body>
 <div id="container">
 <div class="header">
  <span style="float: left;">白超华-博客园</span>
  <span style="float: right;">20:30</span>
 </div>
 <ul class="content"></ul>
 <div class="footer">
  <div id="icon">
  <img src="img/1.jpg" alt="">
  </div>
  <input id="text" type="text" placeholder="说点什么吧...">
  <span id="btn">发送</span>
 </div>
 </div>
</body>
</html>

本文已被整理到了《JavaScript微信开发技巧汇总》,欢迎大家学习阅读。

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

希望本文所述对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript 获取用户客户端操作系统版本
Aug 25 Javascript
node.js适合游戏后台开发吗?
Sep 03 Javascript
javascript中Date对象的getDay方法使用指南
Dec 22 Javascript
微信小程序 Storage API实例详解
Oct 02 Javascript
Express URL跳转(重定向)的实现方法
Apr 07 Javascript
js每隔两秒输出数组中的一项(实例)
May 28 Javascript
详解Angular的8个主要构造块
Jun 20 Javascript
纯js实现图片匀速淡入淡出效果
Aug 22 Javascript
详谈Node.js之操作文件系统
Aug 29 Javascript
JS实现对json对象排序并删除id相同项功能示例
Apr 18 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
Sep 28 Javascript
redux处理异步action解决方案
Mar 22 Javascript
关于Bootstrap弹出框无法调用问题的解决办法
Mar 10 #Javascript
TypeScript Type Innference(类型判断)
Mar 10 #Javascript
JavaScript File分段上传
Mar 10 #Javascript
ES6中非常实用的新特性介绍
Mar 10 #Javascript
ES6的新特性概览
Mar 10 #Javascript
JavaScript字符串常用的方法
Mar 10 #Javascript
javascript中call apply 与 bind方法详解
Mar 10 #Javascript
You might like
php 代码优化的42条建议 推荐
2009/09/25 PHP
PHP定时执行任务的3种方法详解
2015/12/21 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
laravel5 Eloquent 实现事务方式
2019/10/21 PHP
用htc组件制作windows选项卡
2007/01/13 Javascript
JSON 学习之JSON in JavaScript详细使用说明
2010/02/23 Javascript
ExtJS GridPanel 根据条件改变字体颜色
2010/03/08 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
javascript运行机制之this详细介绍
2014/02/07 Javascript
使用时间戳解决ie缓存的问题
2014/08/20 Javascript
5个书写JavaScript代码的坏习惯,看看你中枪了没?
2014/11/06 Javascript
基于BootStrap的图片轮播效果展示实例代码
2016/05/23 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
2016/05/29 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
防止重复发送 Ajax 请求
2017/02/15 Javascript
vue监听滚动事件实现滚动监听
2017/04/11 Javascript
jQuery实现select下拉框获取当前选中文本、值、索引
2017/05/08 jQuery
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
微信小程序实现获取准确的腾讯定位地址功能示例
2019/03/27 Javascript
Vue实现手机计算器
2020/08/17 Javascript
[38:30]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第一场2
2014/05/24 DOTA
python实现的各种排序算法代码
2013/03/04 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
详解python多线程、锁、event事件机制的简单使用
2018/04/27 Python
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
大一期末自我鉴定
2013/12/13 职场文书
大学生在校学习的自我评价
2014/02/18 职场文书
优秀实习生主要事迹
2014/05/29 职场文书
药店促销活动策划方案
2014/08/24 职场文书
护士实习自荐信
2015/03/06 职场文书
入党介绍人意见范文
2015/06/01 职场文书
个人催款函范文
2015/06/24 职场文书
golang中的空slice案例
2021/04/27 Golang
详解Js模块化的作用原理和方案
2021/04/29 Javascript
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python
用Python实现一个打字速度测试工具来测试你的手速
2021/05/28 Python