用vue项目 模拟一个微信聊天的 demo页面

编程入门 行业动态 更新时间:2024-10-25 10:29:32

用vue项目 模拟一个微信聊天的 demo<a href=https://www.elefans.com/category/jswz/34/1771336.html style=页面"/>

用vue项目 模拟一个微信聊天的 demo页面

创建个空页面  然后把这个复制进去(只加了简单逻辑,细节根据需求再去调整)

<template>

<div>

<!-- 标题 -->

<header class="headers">标题</header>

<!-- 内容 -->

<hgroup class="hgroups" ref="hgroups"></hgroup>

<!-- 底部 -->

<footer class="footers">

<el-input type="textarea" :rows="2" class="ipt" placeholder="请输入内容" v-model.trim="textarea"></el-input>

<el-button type="success" @click="sending">发送按钮</el-button>

</footer>

</div>

</template>

<script>

export default {

data() {

return {

textarea: "" //用户输入的内容

};

},

methods: {

sending() {

if (this.textarea) { //判断能容不能为空或空格 输入时也加了 .trim (意思是过滤输入时前后的空格)

this.$refs.hgroups.innerHTML += `<div class="user"><div class='textstyle'>${this.textarea}</div><i class="el-icon-user" style='margin-left:10px'></i></div>`; //用户输入时每次增加标签

this.textarea = "";

this.$refs.hgroups.scrollTop = this.$refs.hgroups.scrollHeight; //用户说话后滚动条自动滚动

setTimeout(() => { //模拟系统延时1秒回答

this.$refs.hgroups.innerHTML += `<div class="system"><i class="el-icon-user-solid" style='margin-right:10px'></i><div class='textstyle'>${223}</div></div>`; //系统回答时每次增加的标签 注意和上边用户的class不同

this.$refs.hgroups.scrollTop = this.$refs.hgroups.scrollHeight; //系统说话后滚动条自动滚动

}, 1000);

} else {

this.$message.error("错了哦,消息不可为空"); //验证输入内容为空时 消息提示

}

}

}

};

</script>

<style scoped lang="scss">

::v-deep  .headers {

/*标题设置*/

height: 80px; /*高*/

background-color: aquamarine; /*背景色*/

line-height: 100px; /*行高,控制上下居中*/

text-align: center; /*控制左右居中*/

}

::v-deep  .hgroups {

/* 内容区样式*/

height: 300px;

background-color: azure;

overflow: auto; /*聊天内容过多时自动添加滚动条*/

}

::v-deep  .footers {

/* 底部区样式*/

display: flex; /* 控制底部框框和按钮在一排 横着显示的*/

}

::v-deep  .ipt {

margin-right: 20px; /* 底部区框框和按钮中间的间隙*/

}

::v-deep  .user { /* 用户说话样式*/

float: right; /* 用户说话自动靠右*/

clear: both; /* 用户说话左边不能有东西*/

display: flex; /* 头像和说话并排显示*/

align-items: center; /* 头像在说话高度中间对齐*/

}

::v-deep  .textstyle { /* 气泡框绿色背景样式*/

padding: 10px;

background-color: rgb(128, 210, 98);

border-radius: 10px;

max-width: 500px;

word-wrap: normal; /* 说话太长自动换行*/

line-height: 24px;

}

::v-deep  .system { /* 系统说话样式*/

float: left;

clear: both;

display: flex;

align-items: center;

}

</style>

更多推荐

用vue项目 模拟一个微信聊天的 demo页面

本文发布于:2024-02-25 15:47:06,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1699487.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:页面   项目   vue   demo

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!