视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
jquery仿微信聊天界面实例分享
2020-11-27 20:06:35 责编:小OO
文档
 本文主要为大家详细介绍了jquery仿微信聊天界面的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家。

首先看一下我们的效果图。

这个颜色可能搭配的有些不合适,但基本功能大都实现了。就是你和你同桌对话,你发的消息在你的左侧,而在他设备的右侧。

首先先写好整体的框架,在一个大容器中放两个盒子,分别是左侧和右侧的界面。然后每个盒子里面包含了三大部分:头部、内容区、和底部。只要写好一侧,另一侧进行粘贴复制就可以了。

首先定义一个大的

来盛放左右两个盒子。

<p id = "main">

 //左侧聊天界面
 <p id = "box">
 <p id = "top"><span>你</span></p>
 <p id = "content">
 <select multiple="multiple" id="leftcontent">

 </select>
 </p>
 <p id = "bottom">
 <input type = "text" class = "sendText" id = "leftText" />
 <input type = "button" id = "leftdBtn" class="sendBtn" value = "发送">
 </p>
 </p>

//右侧聊天界面
 <p id = "box">
 <p id = "top"><span>同桌</span></p>
 <p id = "content">
 <select multiple="multiple" id="rightcontent">

 </select>
 </p>
 <p id = "bottom">
 <input type = "text" class = "sendText" id = "rightText" />
 <input type = "button" id = "rightBtn" class="sendBtn" value = "发送">
 </p>
 </p>

</p>

首先这两个盒子的代码不是复制粘贴就直接可以的。还必须注意以下不同:

<p id = "content">
 <select multiple="multiple" id="rightcontent">
 </select>
</p>

select中的id得不同。我们一般都是

option1
option2
option3

这样使用。而在这儿使用select标签是当你和你同桌聊了一屏的天时,它有滚动条来 上下滑动看你们都聊了些什么。再上面的基础上增加一些css样式,这样界面效果就出来了。

接下来就是要写jquery代码的时候了。首先想一下你在你这边说的话既要出现在你的设备右侧,又要出现在你同桌设备的左侧?

我们先对你的界面左侧进行发消息控制,在写了文本之后,按发送按钮让它出现在你界面的右侧,同时也出现在你同桌设备的左侧。

我们要按照以下步骤来实现:
1。获得你输入的文本框中的内容。
2。生成一个option标签。
2.1 生成标签的样式即生成的span标签在你的设备的右侧进行定位并 显示。
2.2 对生成的标签进行内容的插入即插入文本框中的内容
3。将option标签追加到你的select中。
4。将option标签在你同桌设备的左侧进行定位显示。

5。清除文本框中的内容。

同样再对你同桌的设备方进行显示的时候,和左侧的大同小异。
自己写一下就可以。

在写了左侧和右侧发送的消息函数之后,此时还不能进行消息发送,因为还没有进行事件绑定。首先发送消息有两种方式:
①。按钮发送
按钮发送就需要为按钮绑定事件

②。回车发送

最后附上完整的源代码:

<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8"/>
 <title>模仿微信聊天</title>
 <script type="text/javascript" src = "http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
 <style type="text/css">
 *{
 margin: 0px;
 padding: 0px;
 }

 #main{
 width: 90%;
 margin: 10px auto;
 }
 #box{
 float: left;
 margin:20px 120px; 
 }

 #top{
 width: 310px;
 padding: 10px 20px;
 color: white;
 background-color: lightgreen;
 font-size: 18px;
 font-family: "微软雅黑";
 font-weight: bold;
 }

 #content{
 background-color: white;
 }

 select{
 width: 350px;
 height: 470px;
 background-color: white;
 padding: 10px;
 border:2px solid red;

 }

 #bottom{
 width: 310px;
 background-color: red;
 padding: 10px 20px;
 }

 .sendText{
 height: 25px;
 width: 210px;
 font-size: 16px;
 }

 .sendBtn{
 width: 65px;
 height: 30px;

 float: right;
 background-color: gold;
 color: white;
 text-align: center;
 font-size: 18px;
 }

 span{
 background-color: lightgreen;
 color: #000;
 padding: 10px 30px;

 }
 option{
 padding: 5px 10px;
 margin-top:10px; 
 border-radius:5px;
 width: 10px;
 min-height: 20px;
 }

 .optionRight{
 background-color: lightgreen; 
 }

 .optionLeft{
 background-color: lightblue; 
 }
 </style>

 <script>
 $(function(){

 $("#leftdBtn").bind("click", sendLeft);
 $("#rightBtn").bind("click", sendRight);

 function sendLeft(){

 //1. 获取输入框中的内容
 var text = $("#leftText").val();
 //2. 生成标签
 var option = $("<option></option>");
 option.addClass("optionLeft");
 //2.1 生成标签的样式
 var len = text.length;
 //option.css("width", len * 15 + "px","marginLeft", 350 - len * 15 - 60 + "px")
 option.css("width", len * 15 + "px");
 option.css("marginLeft", 350 - len * 15 - 60 + "px");
 //2.2 生成标签的内容
 option.html(text);
 //3. 将内容追加到select中。
 $("#leftcontent").append(option);
 //4. 追加生成的标签(右侧)
 var option1 = $("<option></option>");
 option1.addClass("optionRight");
 option1.css("width", len * 15 + "px");
 option1.css("marginLeft", 10 +"px");
 option1.html(text);
 $("#rightcontent").append(option1);

 //5. 清除文本框的内容
 $("#leftText").val("");
 } 


 function sendRight(){

 //1. 获取输入框中的内容
 var text = $("#rightText").val();
 //2. 生成标签
 var option = $("<option></option>");
 option.addClass("optionLeft");
 //2.1 生成标签的样式
 var len = text.length;
 //option.css("width", len * 15 + "px","marginLeft", 350 - len * 15 - 60 + "px")
 option.css("width", len * 15 + "px");
 option.css("marginLeft", 350 - len * 15 - 60 + "px");
 //2.2 生成标签的内容
 option.html(text);
 //3. 将内容追加到select中。
 $("#rightcontent").append(option);
 //4. 追加生成的标签(右侧)
 var option1 = $("<option></option>");
 option1.addClass("optionRight");
 option1.css("width", len * 15 + "px");
 option1.css("marginLeft", 10 +"px");
 option1.html(text);
 $("#leftcontent").append(option1);

 $("#rightText").val("");
 }


 $(document).keydown(function(event){

 var txt1 = $("#leftText").val();
 var txt2 = $("#rightText").val() 
 if(event.keyCode == 13){
 if( txt1.trim() != ""){
 sendLeft();
 }
 if(txt2.trim() != ""){
 sendRight();
 }
 }
 });
 })
 </script>
</head>
<body>
<p id = "main">
 <p id = "box">
 <p id = "top"><span>你</span></p>
 <p id = "content">
 <select multiple="multiple" id="leftcontent">

 </select>
 </p>
 <p id = "bottom">
 <input type = "text" class = "sendText" id = "leftText" />
 <input type = "button" id = "leftdBtn" class="sendBtn" value = "发送">
 </p>
 </p>

 <p id = "box">
 <p id = "top"><span>同桌</span></p>
 <p id = "content">
 <select multiple="multiple" id="rightcontent">

 </select>
 </p>
 <p id = "bottom">
 <input type = "text" class = "sendText" id = "rightText" />
 <input type = "button" id = "rightBtn" class="sendBtn" value = "发送">
 </p>
 </p>
</p>
</body>
</html>

下载本文
显示全文
专题