JavaScript實(shí)現(xiàn)簡(jiǎn)易聊天對(duì)話框(加滾動(dòng)條)
今天看了幾個(gè)JS的視頻,老師布置了一個(gè)編寫(xiě)一個(gè)簡(jiǎn)易聊天對(duì)話框的任務(wù),沒(méi)有涉及到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)聽(tīng)滾動(dòng)條到底部的實(shí)例講解
- JavaScript 獲取滾動(dòng)條位置并將頁(yè)面滑動(dòng)到錨點(diǎn)
相關(guān)文章
WEB泡泡堂2.0(圖形界面+電腦對(duì)玩)(javascript)
WEB泡泡堂2.0(圖形界面+電腦對(duì)玩)(javascript)2007-01-01
詳解微信小程序(Taro)手動(dòng)埋點(diǎn)和自動(dòng)埋點(diǎn)的實(shí)現(xiàn)
這篇文章主要介紹了詳解微信小程序(Taro)手動(dòng)埋點(diǎn)和自動(dòng)埋點(diǎn)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
js實(shí)現(xiàn)背景圖自適應(yīng)窗口大小
本文分享了背景圖自適應(yīng)窗口大小的實(shí)例代碼,具有一定的參考作用。下面跟著小編一起來(lái)看下吧2017-01-01
JavaScript實(shí)現(xiàn)驗(yàn)證碼案例
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)驗(yàn)證碼案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
利用Javascript開(kāi)發(fā)一個(gè)二維周視圖日歷
這篇文章主要給大家介紹了關(guān)于利用Javascript如何開(kāi)發(fā)一個(gè)二維周視圖日歷的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
簡(jiǎn)單實(shí)用的網(wǎng)頁(yè)表格特效
簡(jiǎn)單實(shí)用的網(wǎng)頁(yè)表格特效...2006-07-07

