JavaScript實(shí)現(xiàn)QQ聊天室功能
本文實(shí)例為大家分享了JavaScript實(shí)現(xiàn)QQ聊天室的具體代碼,供大家參考,具體內(nèi)容如下
1. 任務(wù)要求
1)掌握基本過(guò)濾選擇器;
2)掌握jQuery對(duì)象的click()方法;
3)掌握jQuery對(duì)象的css()方法;
4)掌握jQuery對(duì)象的addClass()方法;
5)如何獲取指定元素的值?
6)如何設(shè)置元素的顯示和隱藏?
7)如何設(shè)置元素的html代碼?
2. 需求說(shuō)明
制作顯示如下圖所示的QQ聊天頁(yè)面。隨機(jī)用戶在文本框中輸入文本后點(diǎn)擊“發(fā)送”按鈕,文本中的消息將顯示在“聊天記錄區(qū)域”中。聊天記錄區(qū)域列表顯示發(fā)消息人的頭像、姓名和消息內(nèi)容。

3. 實(shí)現(xiàn)思路
1)首先定義兩個(gè)數(shù)組,用來(lái)存儲(chǔ)圖片headImg和QQ昵稱uName。
2)If條件判斷文本框中是否有內(nèi)容,如果沒(méi)有內(nèi)容則用alert提示不能發(fā)送空白信息。
3)Math.random()獲取隨機(jī)數(shù),使圖片headImg和QQ昵稱uName隨機(jī)出現(xiàn)。
4)將每一次輸入進(jìn)行累加,不然下一次輸入會(huì)覆蓋上一次輸入的信息,導(dǎo)致實(shí)現(xiàn)不了多條信息發(fā)送效果。
5)使用addClass()方法設(shè)置發(fā)送后的文本屬性。
6)并在發(fā)送后使用val()方法清空文本框。
4. 實(shí)現(xiàn)代碼
// JavaScript Document
$(document).ready(function(e) {
?? ?var headImg=new Array("qq1.jpg","qq2.jpg","qq3.jpg","qq4.jpg","qq5.jpg");
? ? var uName=new Array("柒","米婭","松松","小虎","小鬼");
? ? $("#send").click(function(e) {
?? ??? ?if ($(".chatText").val().length>0){//判斷輸入框中是否有內(nèi)容
?? ??? ??? ?var id=Math.floor(Math.random()*5);//隨機(jī)獲取頭像和昵稱
?? ??? ??? ?//設(shè)置頭像、昵稱、獲取并設(shè)置輸入的內(nèi)容
?? ??? ??? ?var text="<section><div><img src=img/"+headImg[id]+"></div><p>"+uName[id]+"</p><div>"+$(".chatText").val()+"</div></section>";
?? ??? ??? ?var result=$(".chatBody").html()+"</br>"+text;
?? ??? ??? ?$(".chatBody").html(result);
?? ??? ??? ?$(".chatBody section div:last").addClass("chatContent");
?? ??? ??? ?$(".chatText").val("");//清除文本框中的內(nèi)容
?? ??? ?}
?? ??? ?else{
?? ??? ??? ?alert("不能發(fā)送空白消息!");
?? ??? ?}
? ? });
});5. 運(yùn)行結(jié)果

6. 其他代碼
.html
<!DOCTYPE html> <html> <head lang="en"> ? ? <meta charset="UTF-8"> ? ? <title>QQ簡(jiǎn)易聊天框</title> ? ? <link rel="stylesheet" href="css/chat.css" > </head> <body> <section id="chat"> ? ? <div class="chatBody"></div> ? ? <div><img src="img/icon.jpg"></div> ? ? <textarea class="chatText"></textarea> ? ? <div class="btn"><span>關(guān)閉(C)</span><span id="send">發(fā)送(S)</span></div> </section> <script src="js/jquery-1.11.1.min.js"></script> <script src="js/chat.js"></script> </body> </html>
.css
*{margin: 0; padding: 0; line-height: 22px; font-family: "Arial", "微軟雅黑";}
#chat{
?? ?margin: 3px auto 0 auto;?
?? ?width:436px;?
?? ?border: 1px #999999 solid;
?? ?background-image: url(../img/6.jpg);
}
.chatBody{
?? ?width: 100%;?
?? ?height: 220px;?
?? ?overflow:auto;
?? ?color: #069DD5;
}
.chatText{
?? ?border: none;?
?? ?width: 100%;?
?? ?height: 50px;
}
.btn{
?? ?text-align: right;
}
.btn span{
?? ?display: inline-block;?
?? ?padding: 0 10px;?
?? ?height: 25px;
? ? overflow: hidden;?
?? ?color: #ffffff;?
?? ?border-radius: 5px;?
?? ?background-color: #069dd5;?
?? ?font-size: 12px;?
?? ?margin-right: 3px;?
?? ?cursor:pointer;
}
.chatBody div:first-of-type{
?? ?float: left;?
?? ?width: 38px;
}
.chatBody p{
?? ?float: left;?
?? ?font-size: 12px;?
?? ?width:370px;?
?? ?color: #0000ff;
}
.chatBody div:last-of-type{
? ? float: left;?
?? ?width: 370px;?
?? ?font-size: 12px;
}
.chatBody section{
?? ?clear: both;
}
.chatContent{?
?? ?background:#efefef;
?? ?border-radius: 5px;?
?? ?padding: 3px;
}以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- nodejs實(shí)現(xiàn)的一個(gè)簡(jiǎn)單聊天室功能分享
- 使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
- js編寫簡(jiǎn)單的聊天室功能
- AngularJS+Node.js實(shí)現(xiàn)在線聊天室
- Ajax PHP JavaScript MySQL實(shí)現(xiàn)簡(jiǎn)易無(wú)刷新在線聊天室
- javascript實(shí)現(xiàn)簡(jiǎn)易聊天室
- JavaScript仿聊天室聊天記錄
- Nodejs實(shí)現(xiàn)多房間簡(jiǎn)易聊天室功能
- NodeJS實(shí)現(xiàn)一個(gè)聊天室功能
- Node.js中使用socket創(chuàng)建私聊和公聊聊天室
相關(guān)文章
詳解js根據(jù)百度地圖提供經(jīng)緯度計(jì)算兩點(diǎn)距離
這篇文章主要介紹了js根據(jù)百度地圖提供經(jīng)緯度計(jì)算兩點(diǎn)距離,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
ES6中async函數(shù)與await表達(dá)式的基本用法舉例
async和await是我們進(jìn)行Promise時(shí)的一個(gè)語(yǔ)法糖,async/await為了讓我們書寫代碼時(shí)更加流暢,增強(qiáng)了代碼的可讀性,下面這篇文章主要給大家介紹了關(guān)于ES6中async函數(shù)與await表達(dá)式的基本用法,需要的朋友可以參考下2022-07-07
Bootstrap基本插件學(xué)習(xí)筆記之Popover提示框(19)
這篇文章主要為大家詳細(xì)介紹了Bootstrap基本插件學(xué)習(xí)筆記之Popover提示框的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
JavaScript中async await更優(yōu)雅的錯(cuò)誤處理方式
async/await中的異常處理很讓人混亂,盡管有很多種方式來(lái)應(yīng)對(duì)async 函數(shù)的異常,但是連經(jīng)驗(yàn)豐富的開(kāi)發(fā)者有時(shí)候也會(huì)搞錯(cuò),所以這篇文章主要給大家介紹了關(guān)于JavaScript中async await更優(yōu)雅的錯(cuò)誤處理方式的相關(guān)資料,需要的朋友可以參考下2021-09-09
javascript實(shí)現(xiàn)貪吃蛇經(jīng)典游戲
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)貪吃蛇經(jīng)典游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04

