在线回复的功能实现

Original 2019-03-30 16:25:31 341
abstract:<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>在线客服聊天系统</title>
<style>
*{margin:0;padding:0;}
.box1 {
width: 500px;
height: 600px;
background: aqua;
margin: 50px auto;
}

h2 {
text-align: center;
color: #333;
}

.box2 {
width: 90%;
height: 400px;
margin: 20px auto;
background: #fff;
color: #333;
}

ul {
list-style-type: none;
padding:10px;
}

table {
width: 90%;
height: 80px;
margin: 5px auto;
}

textarea {
width: 350px;
height: 60px;
}

button {
width: 60px;
height: 60px;
border: none;
border-radius: 10px;
}

button:hover {
background: #ff4700;
cursor: pointer;
/* display: inline-block; */
}
</style>
</head>

<body>
<div class="box1">
<h2>聊天框</h2>
<div class="box2">
<ul>
<li></li>
</ul>
</div>
<table>
<tr>
<td><textarea></textarea></td>
<td><button>发送</button></td>
</tr>
</table>
</div>
</body>
<script>
//获取节点
let text = document.getElementsByTagName('textarea')[0];
let but = document.getElementsByTagName('button')[0];
let list = document.getElementsByTagName('ul')[0];
but.onclick = function () {
//判断是否输入内容
if (text.value.length === 0){
alert('你是否忘记输入内容了呢');
return false;
}
let sum =0; //计数器
//创建新节点
let li = document.createElement('li');
//创建一个接收头像的节点
let img = '<img style="width:30px;height:30px;border-radius:50%;float:left;" src="http://img2.imgtn.bdimg.com/it/u=2060761043,284284863&fm=26&gp=0.jpg">';
//创建一个接收文字的节点
let text1 = text.value;
//用li节点接收内容和图片内容
li.innerHTML = img +' '+'<span style="line-height: 40px;float:left;margin-left:10px;">'+text1+'</span>';
li.style.height="40px";
//在ul节点中插入li节点
list.appendChild(li);
//清空text节点的内容
text.value = " ";
sum += 1 ;
// alert(sum);
//设置一个定时器,能够自动回复
setTimeout(function(){
let info = [
'没干什么',
'我吃了啊',
'你想我吗',
'我想你了',
'在吗',
'一起看电影吗',
'不要离开我好吗'
];
let temp = info[Math.floor(Math.random()*7)];
// Console.log(temp);
//创建新节点
let li2 = document.createElement('li');
let img2 = '<img style="float:right;width:30px;height:30px;border-radius:50%;" src="http://img5.imgtn.bdimg.com/it/u=2467153489,966901276&fm=26&gp=0.jpg">';
li2.innerHTML =img2+' '+'<span style="color:red;float:right;line-height: 40px;margin-right:10px;">'+temp+'</span>';
li2.style.height="40px";
list.appendChild(li2);
sum += 1 ;
// alert(sum);
},2000);
// console.log(sum);
if (sum > 10) {
list.innerHTML = '';
sum =0;
};
}

</script>

</html>

基本功能都实现了,但是有两个问题没有搞明白,第一个是点击but按钮时老师写了一个if判断,如果文本域中没写东西就会跳出弹窗,第一次判断的确是有效,但是第一次过后判断就无法生效了,那么如何在每一次点击的时候都判断一下是否为空呢?第二点关于判断计数器清空文本域,我自己敲了一遍,没有实现,又照着老师的敲了一遍,也没实现,代码也无报错,找了半个多小时的错误,无果,希望老师解答下.我自己也通过测试发现sum的数值的确在增加,但是后面那个if判断却不起作用.

Correcting teacher:天蓬老师Correction time:2019-04-01 09:49:25
Teacher's summary:如果觉得代码逻辑有问题,可以使用单步调试,跟踪程序的执行

Release Notes

Popular Entries