基于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 相关文章推荐
拖动Html元素集合 Drag and Drop any item
Dec 22 Javascript
任意位置显示html菜单
Feb 01 Javascript
JSON.parse 解析字符串出错的解决方法
Jul 08 Javascript
jquery事件重复绑定的快速解决方法
Jan 03 Javascript
js修改原型的属性使用介绍
Jan 26 Javascript
AngularJS表单验证中级篇(3)
Sep 28 Javascript
JS FormData上传文件的设置方法
Jul 05 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
Nov 28 Javascript
js中apply和Math.max()函数的问题及区别介绍
Mar 27 Javascript
Webpack4+Babel7+ES6兼容IE8的实现
Apr 10 Javascript
vue实现跳转接口push 转场动画示例
Nov 01 Javascript
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
Apr 09 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
web方式ftp
2006/10/09 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
PHP中函数gzuncompress无法使用的解决方法
2017/03/02 PHP
php实现获取近几日、月时间示例
2019/07/06 PHP
Javascript的IE和Firefox兼容性汇编
2006/07/01 Javascript
用javascript操作xml
2006/11/04 Javascript
javascript radio 联动效果
2009/03/04 Javascript
JQuery中getJSON的使用方法
2010/12/13 Javascript
js分解url参数(面向对象-极简主义法应用)
2012/08/09 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
php的文件上传入门教程(实例讲解)
2014/04/10 Javascript
在myeclipse中如何加入jquery代码提示功能
2014/06/03 Javascript
2014年最火的Node.JS后端框架推荐
2014/10/27 Javascript
JS针对Array的各种操作汇总
2016/11/29 Javascript
javascript中的面向对象
2017/03/30 Javascript
Vue打包后出现一些map文件的解决方法
2018/02/13 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
IE11下处理Promise及Vue的单项数据流问题
2019/07/24 Javascript
Vue中常用rules校验规则(实例代码)
2019/11/14 Javascript
python搭建微信公众平台
2016/02/09 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
linux下python中文乱码解决方案详解
2019/08/28 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
运行python提示no module named sklearn的解决方法
2020/11/29 Python
使用canvas绘制贝塞尔曲线
2014/12/17 HTML / CSS
艺龙旅行网酒店预订:国内、港澳台酒店
2018/06/26 全球购物
英国领先的高级美容和在线皮肤诊所:Face the Future
2020/06/17 全球购物
Servlet的生命周期
2013/08/25 面试题
vue路由实现登录拦截
2021/03/24 Vue.js
大学本科毕业生的自我鉴定
2013/11/26 职场文书
学生会主席演讲稿
2014/04/25 职场文书
港澳通行证委托书怎么写
2014/08/02 职场文书
罚款通知怎么写
2015/04/22 职场文书
使用Pytorch训练two-head网络的操作
2021/05/28 Python
Python语言中的数据类型-序列
2022/02/24 Python