基于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 相关文章推荐
仿淘宝TAB切换搜索框搜索切换的相关内容
Sep 21 Javascript
一个检测表单数据的JavaScript实例
Oct 31 Javascript
在JavaScript中call()与apply()区别
Jan 22 Javascript
JavaScript深度复制(deep clone)的实现方法
Feb 19 Javascript
js实现前端分页页码管理
Jan 06 Javascript
vue小白入门教程
Apr 02 Javascript
vue.js删除列表中的一行
Jun 30 Javascript
JavaScript怎样在删除前添加确认弹出框?
May 27 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
Apr 10 Javascript
js实现鼠标拖拽div左右滑动
Jan 15 Javascript
Vue.js仿Select下拉框效果
Feb 18 Javascript
在Vue中获取自定义属性方法:data-id的实例
Sep 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
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
2014/06/12 PHP
PHP连接access数据库
2015/03/27 PHP
Yii2下session跨域名共存的解决方案
2017/02/04 PHP
Laravel实现表单提交
2017/05/07 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
Javascript 面向对象 继承
2010/05/13 Javascript
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
2013/12/22 Javascript
浅谈javascript中字符串String与数组Array
2014/12/31 Javascript
Jquery操作Ajax方法小结
2015/11/29 Javascript
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
js实现华丽的九九乘法表效果
2017/03/29 Javascript
js和jquery中获取非行间样式
2017/05/05 jQuery
详解Vue 事件修饰符capture 的使用
2017/12/29 Javascript
Angular2.0实现modal对话框的方法示例
2018/02/18 Javascript
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
2018/12/28 Javascript
微信小程序连续签到7天积分获得功能的示例代码
2020/08/20 Javascript
python 布尔操作实现代码
2013/03/23 Python
Python查找相似单词的方法
2015/03/05 Python
机器学习经典算法-logistic回归代码详解
2017/12/22 Python
python读取文本绘制动态速度曲线
2018/06/21 Python
Python实现拷贝/删除文件夹的方法详解
2018/08/29 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
Python如何对齐字符串
2020/07/30 Python
HTML5 Canvas实现烟花绽放特效
2016/03/02 HTML / CSS
瑞典轮胎在线:Tirendo.se
2018/06/21 全球购物
美国修容界大佬创建的个人美妆品牌:Kevyn Aucoin Beauty
2018/12/12 全球购物
小学教师师德反思
2014/02/03 职场文书
2014村务公开实施方案
2014/02/25 职场文书
基本公共卫生服务健康教育工作方案
2014/05/22 职场文书
会议接待欢迎标语
2014/10/08 职场文书
群众路线专项整治工作情况报告
2014/10/28 职场文书
学校节水倡议书
2015/04/29 职场文书
2015年七夕情人节活动方案
2015/05/06 职场文书