JavaScript實(shí)現(xiàn)QQ聊天室功能
本文實(shí)例為大家分享了JavaScript實(shí)現(xiàn)QQ聊天室的具體代碼,供大家參考,具體內(nèi)容如下
1. 任務(wù)要求
1)掌握基本過濾選擇器;
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)容,如果沒有內(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)文章
在百度搜索結(jié)果中去除掉一些網(wǎng)站的資料(通過js控制不讓顯示)
這篇文章主要介紹了在百度搜索結(jié)果中去除掉一些網(wǎng)站的資料(通過js控制不讓顯示),需要的朋友可以參考下2017-05-05JS獲取數(shù)組中出現(xiàn)次數(shù)最多及第二多元素的方法
這篇文章主要介紹了JS獲取數(shù)組中出現(xiàn)次數(shù)最多及第二多元素的方法,涉及javascript針對(duì)數(shù)組的遍歷、排序、判斷、查詢等相關(guān)操作技巧,需要的朋友可以參考下2017-10-10js實(shí)現(xiàn)json數(shù)組分組合并操作示例
這篇文章主要介紹了js實(shí)現(xiàn)json數(shù)組分組合并操作,涉及javascript針對(duì)json數(shù)組的遍歷、判斷、添加、賦值等相關(guān)操作技巧,需要的朋友可以參考下2019-02-02微信開發(fā) 使用picker封裝省市區(qū)三級(jí)聯(lián)動(dòng)模板
這篇文章主要學(xué)習(xí)微信開發(fā),如何使用picker封裝省市區(qū)三級(jí)聯(lián)動(dòng)模板,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10js實(shí)現(xiàn)數(shù)組冒泡排序、快速排序原理
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)數(shù)組冒泡排序、快速排序的原理,感興趣的小伙伴們可以參考一下2016-03-03javascript中利用柯里化函數(shù)實(shí)現(xiàn)bind方法【推薦】
下面小編就為大家?guī)?lái)一篇javascript中利用柯里化函數(shù)實(shí)現(xiàn)bind方法【推薦】。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過來(lái)看看吧2016-04-04Bootstrap基本插件學(xué)習(xí)筆記之Alert警告框(20)
這篇文章主要為大家詳細(xì)介紹了Bootstrap基本插件學(xué)習(xí)筆記之ALert警告框的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12深入學(xué)習(xí)JavaScript中的promise
這篇文章主要介紹了深入學(xué)習(xí)JavaScript中的promise,Promise對(duì)象的主要?途是通過鏈?zhǔn)秸{(diào)?的結(jié)構(gòu),將原本回調(diào)嵌套的異步處理流程,轉(zhuǎn)化成“對(duì)象.then().then()...”的鏈?zhǔn)浇Y(jié)構(gòu)2022-06-06