基于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 相关文章推荐
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
Apr 16 Javascript
js模仿html5 placeholder适应于不支持的浏览器
Jan 13 Javascript
解析javascript系统错误:-1072896658的解决办法
Jul 08 Javascript
JavaScript中发布/订阅模式的简单实例
Nov 05 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
Mar 19 Javascript
Angular4学习笔记之新建项目的方法
Jul 18 Javascript
Angular2使用vscode断点调试ts文件的方法
Dec 13 Javascript
微信小程序slider组件使用详解
Jan 31 Javascript
Node.js利用console输出日志文件的方法示例
Apr 27 Javascript
Vue SSR 即时编译技术的实现
May 06 Javascript
EXTJS7实现点击拖拉选择文本
Dec 17 Javascript
vue 动态创建组件的两种方法
Dec 31 Vue.js
关于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数组的交集array_intersect(),array_intersect_assoc(),array_inter_key()函数的小问题
2011/05/29 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
2013/08/06 PHP
JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
2010/01/22 Javascript
JavaScript 代码压缩工具小结
2012/02/27 Javascript
解析Jquery的LigerUI如何实现文件上传
2013/07/09 Javascript
js保留小数点后几位的写法
2014/01/03 Javascript
Jquery 点击按钮自动高亮实现原理及代码
2014/04/25 Javascript
jQuery控制网页打印指定区域的方法
2015/04/07 Javascript
jQuery实现新消息在网页标题闪烁提示
2015/06/23 Javascript
详解js跨域原理以及2种解决方案
2015/12/09 Javascript
基于AngularJS+HTML+Groovy实现登录功能
2016/02/17 Javascript
巧用weui.topTips验证数据的实例
2017/04/17 Javascript
使用webpack3.0配置webpack-dev-server教程
2018/05/29 Javascript
React Native开发封装Toast与加载Loading组件示例
2018/09/08 Javascript
Vue3.0 响应式系统源码逐行分析讲解
2019/10/14 Javascript
[04:16]DOTA2英雄梦之声_第09期_斧王
2014/06/21 DOTA
Python实现的HTTP并发测试完整示例
2020/04/23 Python
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
python与php实现分割文件代码
2017/03/06 Python
Python使用numpy模块创建数组操作示例
2018/06/20 Python
python如何生成网页验证码
2018/07/28 Python
修改 CentOS 6.x 上默认Python的方法
2019/09/06 Python
python pycharm的安装及其使用
2019/10/11 Python
python实现的分析并统计nginx日志数据功能示例
2019/12/21 Python
新手入门学习python Numpy基础操作
2020/03/02 Python
python爬取youtube视频的示例代码
2021/03/03 Python
GE设备配件:GE Appliance Parts(家电零件、配件和滤水器)
2018/11/28 全球购物
施华洛世奇中国官网:SWAROVSKI中国
2020/06/16 全球购物
SQL Server面试题
2013/04/04 面试题
电气专业应届生求职信
2013/11/01 职场文书
法制宣传日活动总结
2014/04/29 职场文书
爱国演讲稿500字
2014/05/04 职场文书
亚运会口号
2014/06/20 职场文书
幼儿园五一劳动节活动总结
2015/02/09 职场文书
法院执行局工作总结
2015/08/11 职场文书
基于Python实现流星雨效果的绘制
2022/03/18 Python