JavaScript實(shí)現(xiàn)簡(jiǎn)易聊天對(duì)話框(加滾動(dòng)條)
今天看了幾個(gè)JS的視頻,老師布置了一個(gè)編寫一個(gè)簡(jiǎn)易聊天對(duì)話框的任務(wù),沒有涉及到Ajax.主要實(shí)現(xiàn)了切換頭像模擬兩方的聊天情況,樣式比較簡(jiǎn)單,后期可以進(jìn)行美化。
需要注意的地方是我是用的ul li列表來(lái)實(shí)現(xiàn)元素的添加,這樣更利于樣式的設(shè)置,每添加一個(gè)對(duì)話框需要清除一下浮動(dòng),不然會(huì)出現(xiàn)連續(xù)幾個(gè)對(duì)話框出現(xiàn)在一行的現(xiàn)象。
代碼如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>聊天對(duì)話框</title> <style type="text/css"> #container{ width: 250px; height: 350px; border:1px solid #7b6b6b; margin: 0 auto; position: relative; } #content{ width: 250px; height: 300px; border-bottom: 1px solid #ccc; overflow-y: auto; } #content ul{ margin: 0; padding: 0; } #Img{ width: 30px; height: 30px; position: absolute; left: 10px; top: 310px; border-radius: 15px; } #txt{ margin: 0; position: absolute; left: 50px; top: 315px; border-radius: 2px; border:1px solid #ccc; width: 133px; height: 18px; } #btn{ margin-right: 10px; position: absolute; margin: 0; left: 197px; top: 314px; } #edit{ background: #ece7e766; width: 250px; height: 50px; } .showTxt{ width: auto; height: auto; max-width: 230px; background: #008000a8; border:0; font-size: 15px; color: white; padding: 5px; border-radius: 2px; word-break: break-all; list-style: none; margin-top: 5px; display: list-item; } .left{ text-align: left; margin-left: 50px; float: left; } .right{ text-align: right; margin-right: 50px; float: right; } .showImg{ width: 26px; height: 26px; border-radius: 13px; } .leftImg{ left: 10px; position: absolute; } .rightImg{ right: 10px; position: absolute; } #scroll{ position: relative; } </style> </head> <body> <div id="container"> <div id="content"> <div id="scroll"> <ul id="save"></ul> </div> </div> <div id="edit"> <img src="1.jpg" id="Img"> <input type="text" name="" id="txt"> <input type="button" name="" value="發(fā)送" id="btn"> </div> </div> <script type="text/javascript"> //獲取元素 var oCont=document.getElementById('content'); var oImg=document.getElementById('Img'); var oTxt=document.getElementById('txt'); var oBtn=document.getElementById('btn'); var oSTxt=document.getElementsByClassName('showTxt'); var oSave=document.getElementById('save'); var num=0; //切換頭像 oImg.οnclick=function(){ num++; if(num%2==0) oImg.src='1.jpg'; else oImg.src='2.jpg'; } //發(fā)送事件 oBtn.οnclick= function(){ addCon(); } function addCon(){ //定義需要添加的元素 var newLi=document.createElement("li"); var newImg=document.createElement('img'); //判斷聊天的對(duì)象是哪一方,文字框出現(xiàn)在左邊還是右邊 if(num%2==0){ //添加對(duì)話框 newLi.innerHTML=oTxt.value; newLi.className='showTxt right'; oSave.appendChild(newLi); oTxt.value=''; //添加頭像 newImg.src=oImg.src; newImg.className='showImg rightImg'; newLi.appendChild(newImg); //清除浮動(dòng) var div = document.createElement('div'); div.style = 'clear:both'; oSave.appendChild(div); }else{ newLi.innerHTML=oTxt.value; newLi.className='showTxt left'; oSave.appendChild(newLi); oTxt.value=''; newImg.src=oImg.src; newImg.className='showImg leftImg'; newLi.appendChild(newImg); var div = document.createElement('div'); div.style = 'clear:both'; oSave.appendChild(div); } } </script> </body> </html>
頁(yè)面結(jié)果如圖:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 原生js實(shí)現(xiàn)自定義滾動(dòng)條組件
- 原生js實(shí)現(xiàn)自定義滾動(dòng)條
- js實(shí)現(xiàn)滾動(dòng)條自動(dòng)滾動(dòng)
- Vue.js桌面端自定義滾動(dòng)條組件之美化滾動(dòng)條VScroll
- JS自定義滾動(dòng)條效果
- js滾輪事件 js自定義滾動(dòng)條的實(shí)現(xiàn)
- JS實(shí)現(xiàn)滾動(dòng)條觸底加載更多
- 使用js實(shí)現(xiàn)一個(gè)簡(jiǎn)單的滾動(dòng)條過(guò)程解析
- layer.js open 隱藏滾動(dòng)條的例子
- vue 純js監(jiān)聽滾動(dòng)條到底部的實(shí)例講解
- JavaScript 獲取滾動(dòng)條位置并將頁(yè)面滑動(dòng)到錨點(diǎn)
相關(guān)文章
微信小程序?qū)崿F(xiàn)天氣預(yù)報(bào)功能(附源碼)
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)天氣預(yù)報(bào)功能(附源碼),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12JavaScript中函數(shù)聲明與函數(shù)表達(dá)式的區(qū)別詳解
可能很多朋友只知道兩種聲明方式一個(gè)是函數(shù)聲明一個(gè)是函數(shù)表達(dá)式,具體有什么不同沒能說(shuō)得很好。事實(shí)上,JavaScript的解析器對(duì)函數(shù)聲明與函數(shù)表達(dá)式并不是一視同仁地對(duì)待的。下面看看這兩者到底有什么不同。2016-08-08javascript實(shí)現(xiàn)控制div顏色
本文給大家分享的是使用javascript實(shí)現(xiàn)控制DIV背景色的代碼,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。2015-07-07JavaScript性能陷阱小結(jié)(附實(shí)例說(shuō)明)
JavaScript陷阱太多,因此我們得步步為營(yíng),下面這些點(diǎn),相信很多同學(xué)都會(huì)遇到,希望朋友們多注意下。JavaScript陷阱太多,因此我們得步步為營(yíng),下面是一些常見的影響性能的陷阱。2010-12-12javascript 制作坦克大戰(zhàn)游戲初步 圖片與代碼
javascript 制作坦克大戰(zhàn)游戲初步 圖片與代碼...2007-11-11JavaScript中的一些實(shí)用小技巧總結(jié)
這篇文章主要給大家總結(jié)介紹了關(guān)于JavaScript中的一些實(shí)用小技巧,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用JavaScript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04