Vue表情输入组件表情输入组件 微信微信face表情组件表情组件
主要为大家详细介绍了Vue表情输入组件,微信face表情组件,具有一定的参考价值,感兴趣的小伙伴们可以参
考一下
VUE表情包输入组件,先来张成品图看看。
年底了没事干,把以前做过的项目中的组件拿出来再复习一下, 先说说思路吧。
注意:注意:
1. 项目是用vue-cli3.0搭建起来的项目, 参考cli3.0官网地址
2.样式是用scss需要安装依赖: npm install node-sass sass-loader -D
思路:思路: 页面内容总体分为三块区域(内容区,表情区,输入区),引入JSON文件表情库渲染到页面,给每个表情绑定点击事
件并传递下标,将用户点击过的表情存放到一个数组中,赋值给input标签的value中让其显示先输入框内,然后给 确定 按钮
绑定点击事件,用户点击确定按钮将input中的value值赋值给内容区(内容去也要创建一个数组)让其渲染到你要的位置上,
这样就完成了表情的渲染和发送。
html区域
<template>
<div class="home">
<!-- 页面内容区域 -->
<div :class="faceShow ? 'contentBox contFaceShow' : 'contentBox'">
<ul>
<li v-for="(item,index) in content" :key="index">
<span>{{item}}</span>
</li>
</ul>
</div>
<!-- 输入框区域 -->
<div :class="faceShow ?'box boxFaceShow' : 'box'" ref="heightFace">
<input type="text" v-model="textConent" class="inputContent">
<button class="referBut" @click="referContent">提交</button>
<button class="faceBut" @click="faceContent">表情</button>
</div>
<!-- 表情区域 -->
<div class="browBox" v-if="faceShow">
<ul>
<li v-for="(item,index) in faceList" :key="index" @click="getBrow(index)">{{item}}</li>
</ul>
</div>
</div>
</template>
JS区域
// 导入JSON格式的表情库
const appData = require("@/assets/emojis.json");
export default {
name: "home",
data() {
return {
textConent: "",
faceList: [],
faceShow: false,
getBrowString: "",
content: []
};
},
methods: {
// 表情
faceContent() {
this.faceShow = !this.faceShow;
if (this.faceShow == true) {
for (let i in appData) {
this.faceList.push(appData[i].char);
}
} else {
this.faceList = [];
}
},
// 获取用户点击之后的标签 ,存放到输入框内