文章目录
1.1 用vue实现聊天对话框
<!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>Document</title>
<style type="text/css">
.talk_con {
width: 600px;
height: 500px;
border: 1px solid #666;
margin: 50px auto 0;
background: #f9f9f9;
}
.talk_show {
width: 580px;
height: 420px;
border: 1px solid #666;
background: #fff;
margin: 10px auto 0;
overflow: auto;
}
.talk_input {
width: 580px;
margin: 10px auto 0;
}
.whotalk {
width: 80px;
height: 30px;
float: left;
outline: none;
}
.talk_word {
width: 420px;
height: 26px;
padding: 0px;
float: left;
margin-left: 10px;
outline: none;
text-indent: 10px;
}
.talk_sub {
width: 56px;
height: 30px;
float: left;
margin-left: 10px;
}
.atalk {
margin: 10px;
}
.atalk span {
display: inline-block;
background: #0181cc;
border-radius: 10px;
color: #fff;
padding: 5px 10px;
}
.btalk {
margin: 10px;
text-align: right;
}
.btalk span {
display: inline-block;
background: #ef8201;
border-radius: 10px;
color: #fff;
padding: 5px 10px;
}
</style>
<script src="./vue.js"></script>
<script>
window.onload = function () {
var vm = new Vue({
el: '#app',
data: {
inputValue: '',
selectValue: '0',
list: [
{who: 'A', what: '吃饭了吗?'},
{who: 'B', what: '还没呢,你呢?'}
]
},
methods: {
btnClicked: function () {
// 判断input输入时候有值:
if (this.inputValue == '') {
// 如果为空,进入这里:
alert('内容不能为空')
return
}
// 判断select的值是a说还是b说
// if (this.selectValue == '0') {
// // a 说
// this.list.push({who: 'A', what: this.inputValue})
// } else {
// // b 说
// this.list.push({who: 'B', what: this.inputValue})
//
// }
this.list.push({who:this.selectValue == '0'?'A':'B', what: this.inputValue})
this.inputValue = ''
}
},
})
}
</script>
</head>
<body>
<div id="app">
<div class="talk_con">
<div class="talk_show" id="words">
<div v-for="item in list" :class="item.who=='A' ? 'atalk':'btalk'"><span>{{item.who}}说:{{item.what}}</span></div>
<!--<div class="btalk"><span>B说:还没呢,你呢?</span></div>-->
</div>
<div class="talk_input">
<select v-model="selectValue" class="whotalk" id="who">
<option value="0">A说:</option>
<option value="1">B说:</option>
</select>
<input v-model="inputValue" type="text" class="talk_word" id="talkwords">
<input @click="btnClicked" type="button" value="发送" class="talk_sub" id="talksub">
</div>
</div>
</div>
</body>
</html>
注意事项:注意函数的作用域,昨天因为if{}花括号判断是否输入的作用域括错啦,无法响应发送按钮,找啦1个小时的bug