在手机微信里面,其实有很多很好玩的动效。

今日突然奇想,想通过前端的方式去实现微信里的部分动效。

当然,我们该选择哪个界面呢?

我首先想到了聊天窗口,因为这部分相对来说、简单。

构思:

于是,我就开始写了。

当然啦,在写之前,我们得研究一下,微信的聊天界面:

从上往下看,聊天窗口是分为三部分:

上面的联系人信息,中间的信息流界面,以及下面的输入栏。

当然,还有更多选项藏在了加号里面。

于是,我的构想图就出来了,如下图:

我们只需要按照上图来进行设计,就行了。

别问为什么加号是叉号,因为当你点击了加号,之后,它应该旋转45°,变成叉号(更合逻辑)。

第一步,是先画一个手机。

第二步,就是在这手机里面,划分三个区域(跟上面提到的三部分是一样的)。

第三步,就是在这三个区域里面,再进行更加细致的区域划分(比如说联系人信息上,我还在这里加入了手机的状态栏区域(上图中的黑点是前置摄像头))。

最后一步,就是——

代码实现:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {padding: 0;margin: 0;}/* 手机 */.div1 {width: 326px;height: 732px;background: rgb(245, 245, 245);border: 4px solid pink;border-radius: 36px;margin: 100px auto;}/* 聊天部分 */.div2 {width: 326px;height: 480px;border-bottom: 1px solid pink;/* border-radius: 18px; */margin: 0;padding: 0;}/* 状态栏 */.top {width: 326px;height: 25px;/* border-bottom: 1px solid pink; */}/* 摄像头 */.holl {width: 18px;height: 18px;border-radius: 50%;margin: 5px auto;background: rgb(23, 23, 23);}/* 联系人信息 */.more {width: 326px;height: 50px;border-bottom: 1px solid pink;/* border-radius: 18px; */}/* 用户信息 */.user {width: 326px;text-align: center;margin-top: 5px;}/* 图片格式化 */.user>img {width: 20px;height: 20px;}/* 返回 */.re {margin-left: 10px;float: left;}/* 联系人信息 */.name {text-align: center;width: 266px;float: left;}/* 更多 */.point {margin-right: 10px;float: right;}/* 聊天框 */.div4 {width: 316px;height: 430px;margin: auto;}/* 信息时间 */.time {width: 316px;height: 25px;margin: auto;text-align: center;}/* 格式化数字 */p {margin-top: 8px;font-size: 10px;color: grey;}/* 发送信息 */.send {height: 108px;}/* 对方头像 */.send>.i {margin-left: 8px;width: 42px;height: 42px;border-radius: 5px;}/* 红包 */.red {width: 200px;height: 78px;background: #bf0f0f;border: 0;border-radius: 8px;}/* 格式化reply */.reply {height: 88px;}/* 我方头像 */.reply>.i {float: right;margin-right: 8px;width: 42px;height: 42px;border-radius: 5px;}/* 格式化信息 */.reply>span {float: right;background: greenyellow;border-radius: 5px;padding: 10px;font-size: 14px;margin-right: 8px;}/* 格式化未输入 */.info {display: none;height: 88px;}/* 格式化头像 */.info>.i {float: right;margin-right: 8px;width: 42px;height: 42px;border-radius: 5px;}/* 格式化信息 */.info>span {float: right;background: greenyellow;border-radius: 5px;padding: 10px;font-size: 14px;margin-right: 8px;}/* 加号功能 */.div3 {width: 326px;height: 252px;margin: 0;padding: 0;background: rgb(240, 240, 240);}/* 输入框 */.div5 {margin-top: -46px;/* 修改这行的长度,为后续的发送按钮显示做准备 */width: 380px;height: 46px;overflow: hidden;border-top: 1px solid pink 326px;border-bottom: 1px solid pink 326px;}/* 左边输入语音 */.i1 {float: left;width: 24px;height: 24px;margin: 10px 0 10px 9px;}/* 输入框 */.i3 {outline: none;border: 0;border-radius: 5px;float: left;margin: 8px 0 8px 9px;width: 200px;height: 28px;/* 修改光标的颜色 */caret-color: red;transition: all .4s;}/* emjoy的位置 */.i4 {float: left;margin: 8px 0 8px 9px;width: 28px;height: 28px;}/* 叉掉 */.i2 {display: block;float: left;width: 22px;height: 22px;margin: 12px 10px 10px 9px;}/* 发送按钮 */.i5 {display: block;float: left;width: 52px;height: 28px;border: 0;border-radius: 5px;background: greenyellow;margin: 8px 0 10px 9px;}/* 底部功能按钮 */ul {width: 326px;height: 116px;text-align: center;margin-top: 5px;}li {display: inline-block;width: 58px;height: 58px;list-style: none;border-radius: 10px;background: white;margin-left: 10px;}li>img {width: 38px;height: 38px;padding-top: 10px;text-align: center;}.ul1>li {margin-top: 20px;}</style>
</head><body><!-- 手机框 --><div class="div1"><!-- 聊天部分 --><div class="div2"><!-- 联系人 --><div class="more"><!-- 状态栏 --><div class="top"><!-- 摄像头 --><div class="holl"></div></div><div class="user"><img src="./images/re.png" alt="" class="re"><span class="name">老板</span><img src="./images/more.png" alt="" class="point"></div></div><!-- 聊天框 --><div class="div4"><!-- 对方的消息 --><div class="send"><!-- 时间 --><div class="time"><p>10:28</p></div><!-- 头像 --><img src="./images/avatar.jpg" class="i"></img><!-- 信息内容 --><input class="red" type="button" value="恭喜发财"></div><!-- 回复消息 --><div class="reply"><!-- 时间 --><div class="time"><p>14:18</p></div><!-- 头像 --><img src="./images/avatar.jpg" class="i"></img><!-- 信息内容 --><span>谢谢老板</span></div><!-- 还没有发布的消息 --><div class="info"><!-- 时间 --><div class="time"><p>14:18</p></div><!-- 头像 --><img src="./images/avatar.jpg" class="i"></img><!-- 信息内容 --><span class=".text">谢谢老板</span></div></div></div><!-- 下面功能栏 --><div class="div3"><!-- 这个是输入 --><div class="div5"><img src="./images/say.png" class="i1"><input type="text" class="i3"><img src="./images/emjoy.png" class="i4"><img src="./images/X.png" class="i2"><button class="i5">发送</button></div><!-- 下面的功能区 --><ul class="ul1"><li><img src="./images/ph.png" alt=""><a></a></li><li><img src="./images/ca.png" alt=""><a></a></li><li><img src="./images/vi.png" alt=""><a></a></li><li><img src="./images/add.png" alt=""><a></a></li></ul><ul class="ul2"><li><img src="./images/red.png" alt=""><a></a></li><li><img src="./images/pay.png" alt=""><a></a></li><li><img src="./images/sing.png" alt=""><a></a></li><li><img src="./images/coll.png" alt=""><a></a></li></ul></div></div></body></html>

运行之后,显示的界面是这样的(发送按钮默认不显示):

最后总结:

当然,上面做的页面其实蛮简单的,还没有特别完善。

比如说,更多功能里面的每一个功能下面是没有文字显示的,微信界面是这样的:

而我的则没有下面的小字,图片显示也稍微有点问题。

当然,如果你找不到图片,可以评论留言。

还有就是,现在这个页面是无法实现什么功能的。

比如说,在我们的聊天窗口里,当我们点击了输入框,此时是没有发送键的,但当系统检测到你输入了内容之后,发送键就会显示出来,就比如下面的视频:

用前端技术写WeChat界面

那么这个功能怎么实现呢?

下期再见。

用HTML+CSS写一个手机微信界面相关推荐

  1. DuiVision开发教程(2)-如何写一个简单的界面程序

    基于DuiVision界面库开发的界面程序主要包括如下几部分内容: 1.资源定义,包括图片资源.各个窗口界面的xml定义文件 2.事件处理类代码,用于处理界面响应消息 3.其他业务逻辑代码 下面举例说 ...

  2. pythongui登录界面密码显示_用python写一个带有gui界面的密码生成器

    需要用到的库: tkinter:构建gui界面 pyperclip:复制功能 random:生成随机数 string:处理字符串 代码: from tkinter import * import ra ...

  3. [css] 请使用css写一个多级的下拉菜单

    [css] 请使用css写一个多级的下拉菜单 <!DOCTYPE html> <html lang="en"><head><meta ch ...

  4. [css] 请用css写一个扫码的加载动画图

    [css] 请用css写一个扫码的加载动画图 @Keyframes donut-spin { 0% { transform: rotate(0deg); } 100% { transform: rot ...

  5. [css] 写一个动画,向上匀速移动100px,向下以1.5倍速度移动200px,一直反复循环

    [css] 写一个动画,向上匀速移动100px,向下以1.5倍速度移动200px,一直反复循环 .animation-block {width: 50px;height: 50px;backgroun ...

  6. [css] 写一个高度从0到auto的transition动画

    [css] 写一个高度从0到auto的transition动画 写不了吧,max-height 定值倒是可以 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一 ...

  7. [css] 使用css写一个垂直翻转图片的效果

    [css] 使用css写一个垂直翻转图片的效果 transform: rotateX(180deg); /* 垂直镜像翻转 */ 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持 ...

  8. 基于JavaScript+css写一个简单的h5动态下雨效果

    基于JavaScript+css写一个简单的h5动态下雨效果 文章目录 什么是前端 展示效果 JavaScript是什么? 步骤 1.html 2.css 3.js 什么是前端 前端它是一个工作,它的 ...

  9. Android studio设计一个简易微信界面

    一.设计要求及实现构想 1.设计一个简易微信界面框架,包含至少4个tab页面(我设计的4个分别为message.contact.find.config),要求能实现四个页面之间的点击切换. 2.首先分 ...

最新文章

  1. show在php,show.php
  2. 简单ThreadPool实现
  3. 套接字I/O模型之WSAEventSelect
  4. (golang)HTTP基本认证机制及使用gocolly登录爬取
  5. IPython快捷键及命令
  6. python3 enumerate()函数笔记
  7. 云原生数据仓库从托管到原生的演进实践
  8. visio2016 数据库模型图_数据库相关术语整理
  9. SVN局域网服务器搭建
  10. 【无标题】外汇符合挖坟啊喝咖啡卡机
  11. Windbg 调试内存泄漏
  12. 【内存泄露】LeakCanary常见问题
  13. Facebook广告投放的正确姿势:玩转目标定位
  14. 【指数编制系列二】数据标准化方法
  15. 【黑金ZYNQ7000系列原创视频教程】06.ZYNQ来自FPGA的中断mdash;mdash;按键中断实验...
  16. html rfftq15.gif,stm32F4固件库
  17. DisplayInfo
  18. APUE编程:134---进程间通信(命名域套接字:struct sockaddr_un)
  19. 如何区分单线虚拟主机和双线主机的作用
  20. android22 system,有用的Android22一键ROOT权限(中兴U880为例)详细方法..doc

热门文章

  1. linux hdmi分辨率设置方法,HDMI接口进行设置来优化显示效果详解
  2. Elasticsearch:如何使用 Elasticsearch 6.2 搜索中文、日文和韩文文本 - 第 1 部分: 分析工具
  3. 腾讯秋招,鹅厂的吸引力超过考编了吗?
  4. 面对区块链,徐小平们懂个毛线(行业观察)
  5. Kindle换屏记,图和非常简的介绍
  6. 统计并输出该字符串中26个英文字母
  7. vi/vim命令大全
  8. Shadow Volume DX8
  9. 1033 旧键盘打字 (20 分)
  10. 数据清洗:真值发现TruthFinder算法(附Python代码)