zoukankan      html  css  js  c++  java
  • 仿微信聊天面板制作 javascript

    仿微信聊天面板制作 javascript

    点击头像更换说话对象,简单说下实现原理,html中创建一个ul用于存放所有说话的内容,对话内容是有javascript 动态生成,

    主要难点:先布局好css,当时奥巴马发送时候,让这个li有浮动,当是小胖时候,让这个li左浮动。

    代码:

    复制代码
      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4     <meta charset="UTF-8">
      5     <title>模拟短信发送</title>
      6     <style>
      7         * {
      8             margin: 0;
      9             padding: 0;
     10             list-style: none;
     11             font-family: '微软雅黑'
     12         }
     13         #container {
     14              450px;
     15             height: 780px;
     16             background: #eee;
     17             margin: 80px auto 0;
     18             position: relative;
     19             box-shadow: 20px 20px 55px #777;
     20         }
     21         .header {
     22             background: #000;
     23             height: 34px;
     24             color: #fff;
     25             line-height: 34px;
     26             font-size: 20px;
     27             padding: 0 10px;
     28         }
     29         .footer {
     30              430px;
     31             height: 50px;
     32             background: #666;
     33             position: absolute;
     34             bottom: 0;
     35             padding: 10px;
     36         }
     37         .footer input {
     38              275px;
     39             height: 45px;
     40             outline: none;
     41             font-size: 20px;
     42             text-indent: 10px;
     43             position: absolute;
     44             border-radius: 6px;
     45             right: 80px;
     46         }
     47         .footer span {
     48             display: inline-block;
     49              62px;
     50             height: 48px;
     51             background: #ccc;
     52             font-weight: 900;
     53             line-height: 45px;
     54             cursor: pointer;
     55             text-align: center;
     56             position: absolute;
     57             right: 10px;
     58             border-radius: 6px;
     59         }
     60         .footer span:hover {
     61             color: #fff;
     62             background: #999;
     63         }
     64         #icon {
     65             display: inline-block;
     66             background: red;
     67              60px;
     68             height: 60px;
     69             border-radius: 30px;
     70             position: absolute;
     71             bottom: 6px;
     72             left: 14px;
     73             cursor: pointer;
     74             overflow: hidden;
     75         }
     76         img {
     77              60px;
     78             height: 60px;
     79         }
     80         .content {
     81             font-size: 20px;
     82              435px;
     83             height: 662px;
     84             overflow: auto;
     85             padding: 5px;
     86         }
     87         .content li {
     88             margin-top: 10px;
     89             padding-left: 10px;
     90              412px;
     91             display: block;
     92             clear: both;
     93             overflow: hidden;
     94         }
     95         .content li img {
     96             float: left;
     97         }
     98         .content li span{
     99             background: #7cfc00;
    100             padding: 10px;
    101             border-radius: 10px;
    102             float: left;
    103             margin: 6px 10px 0 10px;
    104             max- 310px;
    105             border: 1px solid #ccc;
    106             box-shadow: 0 0 3px #ccc;
    107         }
    108         .content li img.imgleft { 
    109             float: left; 
    110         }
    111         .content li img.imgright { 
    112             float: right; 
    113         }
    114         .content li span.spanleft { 
    115             float: left;
    116             background: #fff;
    117         }
    118         .content li span.spanright { 
    119             float: right;
    120             background: #7cfc00;
    121         }
    122     </style>
    123     <script>
    124         window.onload = function(){
    125             var arrIcon = ['img/1.jpg','img/2.jpg'];
    126             var num = 0;     //控制头像改变
    127             var iNow = -1;    //用来累加改变左右浮动
    128             var icon = document.getElementById('icon').getElementsByTagName('img');
    129             var btn = document.getElementById('btn');
    130             var text = document.getElementById('text');
    131             var content = document.getElementsByTagName('ul')[0];
    132             var img = content.getElementsByTagName('img');
    133             var span = content.getElementsByTagName('span');
    134 
    135             icon[0].onclick = function(){
    136                 if(num==0){
    137                     this.src = arrIcon[1];
    138                     num = 1;
    139                 }else if(num==1){
    140                     this.src = arrIcon[0];
    141                     num = 0;
    142                 }                
    143             }
    144             btn.onclick = function(){
    145                 if(text.value ==''){
    146                     alert('发送内容不能为空');
    147                 }else {
    148                     content.innerHTML += '<li><img src="'+arrIcon[num]+'"><span>'+text.value+'</span></li>';
    149                     iNow++;
    150                     if(num==0){
    151                         img[iNow].className += 'imgright';
    152                         span[iNow].className += 'spanright';
    153                     }else {
    154                         img[iNow].className += 'imgleft';
    155                         span[iNow].className += 'spanleft';
    156                     }
    157                     text.value = '';
    158                 }
    159             }
    160         }
    161     </script>
    162 </head>
    163 <body>
    164     <div id="container">
    165         <div class="header">
    166             <span style="float: left;">白超华-博客园</span>
    167             <span style="float: right;">20:30</span>
    168         </div>
    169         <ul class="content"></ul>
    170         <div class="footer">
    171             <div id="icon">
    172                 <img src="img/1.jpg" alt="">
    173             </div>
    174             <input id="text" type="text" placeholder="说点什么吧...">
    175             <span id="btn">发送</span>
    176         </div>
    177     </div>
    178 </body>
    179 </html>
    复制代码
  • 相关阅读:
    多线程编程:阻塞、并发队列的使用总结
    为什么阿里的程序员那么帅?---原来他们都有"编码规约扫描"神器在手
    多线程编程:多线程并发制单的开发记录【一】
    如何使用线程锁来提高多线程并发效率
    如何在分布式环境中同步solr索引库和缓存信息
    前端性能优化指南
    DOM操作方法、属性
    CSS样式手册
    XSS跨站脚本攻击
    数组和对象的使用方法
  • 原文地址:https://www.cnblogs.com/apache-x/p/5345525.html
Copyright © 2011-2022 走看看