仿QQ简易聊天

本文介绍如何使用HTML、CSS和jQuery来创建一个仿QQ的简易聊天应用程序。通过结合基本的网页结构与jQuery的交互功能,实现一个简单的聊天界面和交互功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

html+css 如下:

<!DOCTYPE html> 
<html> 
<head lang="en"> <meta charset="UTF-8"> 
<title>QQ简易聊天框</title> 
   <style type="text/css">
   *{
    margin: 0;
    padding: 0;
    list-style: none;
   }
   .box{
    width: 600px;
    height: 500px;
    margin: 25px auto;

   }
   #ltk{
    width: 500px;
    height: 350px;
    background:#ccc;
    overflow-y: auto;
   }
   #wbk{
    height: 105px;
    width: 500px;
    position: relative;
   }
   #btn{
    position: absolute;
    right: 10px;
    bottom: 10px;
    border:0;
    width: 85px;
    height: 33px;
    outline: none;
    cursor:pointer;
   }
   #wbk #btn:hover{
    background:#666;
    color:#FFF;
   }
   #con{
    width: 490px;
    height: 95px;
    border:0;
    background:#ccc;
    outline:none;
   }
 #ltk{
    overflow-y:scroll;
   }

    </style>
</head>
<body>
    <div class="box">
    <div id="ltk">
        <ul class="u" id="ji">
            
        </ul>
    </div>
    <div><img  src="img/QQ图片20190418173005.png" height="40" width="500" alt="" /></div>
    <div id="wbk">
    <textarea name="" id="con" cols="30" rows="10" ></textarea>
    <button id="btn">发送(S)</button></div>
    </div>
</body>

源生:

<script type="text/javascript">
var tou =["img/1.jpg","img/2.jpg","img/3.jpg"]   //图片数组
var names=new Array("时尚伊人","六月奇迹","松松");//人物数组
var item=document.getElementById("ji");
var kg=document.getElementById("ltk")
//两个获取

    btn.onclick=function(){
      qqend();  //按钮的单击事件执行函数
    }
  document.onkeydown=function(event){
    var e=event||window.event;
    if(e.keyCode==13){   //键盘事件 按到回车执行函数
      qqend();
    }
  }
  function qqend(){

    var r =Math.round(Math.random()*2);   //随机数
   var val =con.value;     //获取值
     if (val==""){
      alert("请输入聊天内容");  //非空验证
    }else{
         var img =document.createElement("img");
        img.src=tou[r]
        img.style.width="40px";     
        img.style.height="40px";
        img.style.display="inlne-block"
        //新建图片节点 并设置图片路径及样式
        item.appendChild(img)
     //图片插入列表
        var name=names[r];  //随机获取姓名
        var h=document.createElement("h4");
           h.innerHTML="<h4>"+name+"</h4>"
           h.style.display="inline-block"
           新建h4标签  h4的内容显示姓名 以及设置样式
           item.appendChild(h)
      //姓名插入列表
        var li=document.createElement("li");
         li.innerHTML= val;  
         //新建li节点  li的值为输入的值
        item.appendChild(li);
          //value值插入列表
        con.value= ""; 
      //清空输入框 
     kg.scrollTop=kg.scrollHeight;
 //滚动条的top值为滚定条高度 使刚输入的内容一直显示
}
  }

jQuery封装

<script type="text/javascript">
      $(document).ready(function() {
               $(btn).click(function(){
                qqend();
        });     
        $(document).keydown(function(event){
            if(event.keyCode=="13"){//按下回车键
                qqend();
            }
        });
     function qqend(){
            var $text=$("#ltjl").val();//获取输入框内容
            if($text==""){
                alert("请输入聊天内容");
            }else{ 
            var tou =["img/1.jpg","img/2.jpg","img/3.jpg"]
            var names=["时尚伊人","松松","六月奇迹"]  
            var r =Math.round(Math.random()*2);
          $name=names[r];//人物昵称  
            //创建li
            $li=$("<li></li>");
            //创建img
        var $img=$('<img src="" alt="">');
        $img.css({"width":"40px","height":"40px","display":"inline-block"});
        $img.attr("src",tou[r]);
        $li.append($img);
            //创建h4
            var $h4=("<h4>"+$name+"</h4>")
            $li.append($h4);
            //创建p
            var $p=$("<p>"+$text+"</p>");
            $li.append($p);
            //把li添加到 <div id="ltk"><ul></ul></div>中
            $(".u").append($li);
              $("#ltjl").val('');//清空输入框 
         $(".nb")[0].scrollTop = $(".nb")[0].scrollHeight
            }
        }
    });

</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值