基于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写的select支持上下键、首字母筛选以及回车取值的功能
Sep 09 Javascript
jQuery EasyUI 开源插件套装 完全替代ExtJS
Mar 24 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
May 04 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
Sep 10 Javascript
javascript元素动态创建实现方法
May 13 Javascript
javascript中innerText和innerHTML属性用法实例分析
May 13 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
Aug 23 Javascript
如何解决vue与传统jquery插件冲突
Mar 20 Javascript
vuejs如何配置less
Apr 25 Javascript
详解Node.js 命令行程序开发教程
Jun 07 Javascript
解决Mac安装thrift因bison报错的问题
May 17 Javascript
VueCli4项目配置反向代理proxy的方法步骤
May 17 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
mysql 搜索之简单应用
2007/04/27 PHP
ecshop 订单确认中显示省市地址信息的方法
2010/03/15 PHP
Zend的MVC机制使用分析(一)
2013/05/02 PHP
php小技巧之过滤ascii控制字符
2014/05/14 PHP
PHP间隔一段时间执行代码的方法
2014/12/02 PHP
php生成rss类用法实例
2015/04/14 PHP
PHP滚动日志的代码实现
2015/06/10 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
2007/03/06 Javascript
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
js获取对象为null的解决方法
2013/11/21 Javascript
js实现带农历和八字等信息的日历特效
2016/05/16 Javascript
Document.body.scrollTop的值总为零的快速解决办法
2016/06/09 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
2016/06/22 Javascript
AngularJS优雅的自定义指令
2016/07/01 Javascript
ES6下子组件调用父组件的方法(推荐)
2018/02/23 Javascript
es6数据变更同步到视图层的方法
2019/03/04 Javascript
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
微信小程序实现渐入渐出动画效果
2019/06/13 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
vue实现下拉菜单树
2020/10/22 Javascript
Python的函数嵌套的使用方法
2014/01/24 Python
Python中变量交换的例子
2014/08/25 Python
python实现学生管理系统
2018/01/11 Python
人工神经网络算法知识点总结
2019/06/11 Python
一些常用的HTML5模式(pattern) 总结
2015/07/14 HTML / CSS
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
Ajax实现页面无刷新留言效果
2021/03/24 Javascript
一个大学生十年的职业规划
2014/01/17 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
在宿舍喝酒的检讨书
2014/09/28 职场文书
万能检讨书2000字
2014/10/17 职场文书
Python实现学生管理系统(面向对象版)
2021/06/24 Python
详解Java线程池是如何重复利用空闲线程的
2021/06/26 Java/Android
JavaScript执行机制详细介绍
2021/12/06 Javascript
「租借女友」第2季樱泽墨角色PV&新视觉图公开
2022/03/21 日漫