js-chat-noline

本文详细介绍了如何使用JavaScript创建并管理多个聊天对话框,包括对话框的生成、位置调整、消息发送、关闭操作以及对话框间的优先级管理。

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

<script type="text/javascript">
$(function()
{
	var offset_init_x=300;
	var offset_init_y=50;
	var offset_move_scale=15;
	var chat_z_index=3;
	var chatbox_num=0;
	var chatbox_maxnum=4;
	//生成对话框层
	$.extend({
			chatbox_show:function(id,z){
			offset_init_x+=20;   //坐标偏移15
			offset_init_y+=20;   //坐标偏移15
			if (chat_z_index>100){chat_z_index=3;}
			$("#main_sup").after("<div class='chatbox_main' id='"+id+"'></div>");	
			$("#"+id).css({"background-color":"#98bf21","left":offset_init_x+"px","top":offset_init_y+"px","position":"absolute","z-index":z});
			$("#"+id).append("<div class='chatbox_per'>"+id+"<div id='fre_name1001' class='fre_name'>北极鱼</div><div id='close_"+id+"' class='chatbox_per_a'>×</<div></div> ");
			$("#"+id).append("<div class='chatbox_nr' id='chatbox_nr"+id+"'>444</div>");
			$("#"+id).append("<div class='chatbox_tool'></div>");
			$("#"+id).append("<div class='chatbox_sendmsg'><textarea name='msginput"+id+"' rows='6' id='msginput"+id+"' class='msg_input1'></textarea></div>");
			$("#"+id).append("<div class='chatbox_button'><input type='button' name='closebtn"+id+"' id='closebtn"+id+"' value='关闭'/> <input type='button' name='msgsubmit"+id+"' id='msgsubmit"+id+"' value='发送' /></div>");
	  
			//<div class='chatbox_per'>"+id+"<div id='close_"+id+"' class='chatbox_per_a'>×</<div></div>
			$("#"+id).draggable(); //对话框层可以拖动		
			$("input[id^='msgsubmit']").click(function(){ //信息发送按钮被点击后触发						 							 
				    $.post("Ajax_response.aspx", 
					{ Action: "post", msginput: $("#msginput"+id+"").val() }, 
					function (data){  $("#chatbox_nr"+id+"").html("<div class='a1'>您输入的值是:"+data+"</div>");}, 
					"html") ;	 
					 $("#msginput"+id+"").text="";//清空发送框	
						});	
			
			$("div[id^='close_chat_b_id']").click(function(){ //关闭按钮被点击后触发														 
					$(this).parent().parent().remove();	 
													 });	
			$("input[id^='closebtn']").click(function(){ //关闭按钮被点击后触发														 
					$(this).parent().parent().remove();	 
													 });											 
			
			$("#"+id).mouseup(function(){  //本窗口被点击后,移至最前方。
									// $("#temp_output").html(id+"chat_z_index="+chat_z_index)
									 $("#"+id).css({"z-index":chat_z_index++});									
									 }) ;						
 		
			$.post("Getchat_a.aspx", 
					{ Action: "post", msginput: $("#msginput"+id+"").val() }, 
					function (data){  $("#chatbox_nr"+id+"").html(data);}, 
					"html") ;	
		
						}
			});

	
	$("#main_sup").draggable();  //对话框层可以拖动
	
	//改变层的z-index值
	$.extend({
			 change_div_z:function(id,z){
				 $("#"+id).css({"z-index":z});
				 }
			 
			 });
 
 	 
	
	//移除前面第n个对话窗体
	$.extend({
			remove_div_pre:function(id){
			 //$("#"+id).next().remove();
			// $("#"+id)[0].remove();
			$("#"+id).next().next().next().next().remove();
			if( offset_init_x>=360)
			{
			     offset_init_x=300;  //恢复弹出窗口的位置
	             offset_init_y=50;
			}
			 }
		 
		 });
 
	//当用户名被点击时,生成与该用户的chatbox
	$("div[id^='f_per_id']").click(function(){
											var obj_id="";
											var h_per_id_val="";
											var chat_b_id="";
											var chat_f_name="";
											obj_id=$(this)[0].id;  //获取当前ID
											h_per_id_val=$("#"+obj_id+">input").val(); //获取f_per_id内input的值
											chat_f_name=$("#"+obj_id+">input").val(); //获取f_per_id隐藏的用户名
											chat_b_id="chat_b_id"+h_per_id_val;  //生成类似于chat_b_id1001的id
											if(	$("#"+chat_b_id).length>0) //判断是否存在id=chat_b_id1001的对象									
												{   //若存在,则使其显示在最上层。
												chat_z_index++;
												$.change_div_z(chat_b_id,chat_z_index);
												//alert("exist");   
												}
											else{   //若不存在,则生成此id对话框层。 
											 
												chat_z_index++;
												$.chatbox_show(chat_b_id,chat_z_index);
												chatbox_num++;
												
												   if(chatbox_num>chatbox_maxnum)  //判断对话窗口的数量
													{
														$.remove_div_pre(chat_b_id);//删除对话框
														chatbox_num--;
														
														}
												
												
												 }  
											
											
											});
 
 
$.extend({
			 user_session:function(s){
					$.post("set_session.aspx", 
					{ Action: "post", userid: $(s).val() }, 
					function (data){   $("#putout_b").html(data);}, 
					"text") ;	
					$("#usertouxiang_name").html($(s).val());	 
						}
			});

	$("#niuzai1").click( function(){$.user_session("#niuzai1");});
	$("#beijiyu1").click( function(){$.user_session("#beijiyu1");});
	$("#feifei1").click( function(){$.user_session("#feifei1");});
	 
});
 

 </script>

<!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8; X-Wap-Proxy-Cookie=none" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <title>一起聊 些什么吧...</title> <link type="text/css" href="app/style/chat.css?v=1.2" rel="stylesheet" /> </head> <body> <div class="top"><span class="name">多人 聊天室 </span></div> <style> .right-align { text-align: right; padding-bottom:2px; background-color: #3e2455; /* 深紫背景 */ color: #e2e8f0; /* 浅灰色文本 */ } } </style> <body> <div class="right-align"> <span class="name">他們的痕跡 </span></div> </div> </body> <?php require_once 'app/app.php'; if(empty(@$_COOKIE[KEYS.'_name'])){ echo '<div class="write login"> <input type="text" value="'.rand_nick().'" id="nick" maxlength="5" placeholder="请 随便输入 昵称.." /> <a href="javascript:;" id="login" class="write-link send">进入</a> </div>'; } echo '<div class="talk mk-chat-box"> </div> <div class="talk write"> <input type="text" id="msg" maxlength="140" placeholder="聊点 什么吧..." /> <a href="javascript:;" id="send" class="write-link send" onclick="send()">发送</a> </div>'; ?> <script src="app/style/jquery.min.js"></script> <script src="app/style/chat.min.js"></script> </body> </html> 帮我把他们的痕迹放在多人聊天室的同一行的靠右边,多人聊天室保持居中不变 /* 顶部栏样式,使用深紫背景 */ .top { padding-left: 10px; background-color: #3e2455; /* 深紫背景 */ height: 40px; line-height: 40px; text-align: center; color: #e2e8f0; /* 浅灰色文本 */ }
最新发布
07-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值