亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue表情輸入組件 微信face表情組件

 更新時間:2021年06月29日 09:53:05   作者:王小磊~勿忘初心  
這篇文章主要為大家詳細介紹了Vue表情輸入組件,微信face表情組件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

VUE表情包輸入組件,先來張成品圖看看。

年底了沒事干,把以前做過的項目中的組件拿出來再復習一下, 先說說思路吧。

注意:

1. 項目是用vue-cli3.0搭建起來的項目, 參考cli3.0官網地址

2.樣式是用scss需要安裝依賴: npm install node-sass sass-loader -D

思路: 頁面內容總體分為三塊區(qū)域(內容區(qū),表情區(qū),輸入區(qū)),引入JSON文件表情庫渲染到頁面,給每個表情綁定點擊事件并傳遞下標,將用戶點擊過的表情存放到一個數組中,賦值給input標簽的value中讓其顯示先輸入框內,然后給 確定 按鈕綁定點擊事件,用戶點擊確定按鈕將input中的value值賦值給內容區(qū)(內容去也要創(chuàng)建一個數組)讓其渲染到你要的位置上,這樣就完成了表情的渲染和發(fā)送。

html區(qū)域

<template>
 <div class="home">
 <!-- 頁面內容區(qū)域 -->
 <div :class="faceShow ? 'contentBox contFaceShow' : 'contentBox'">
  <ul>
  <li v-for="(item,index) in content" :key="index">
   <span>{{item}}</span>
  </li>
  </ul>
 </div>
 <!-- 輸入框區(qū)域 -->
 <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>
 <!-- 表情區(qū)域 -->
 <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區(qū)域

// 導入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 = [];
  }
 },
 // 獲取用戶點擊之后的標簽 ,存放到輸入框內
 getBrow(index) {
  for (let i in this.faceList) {
  if (index == i) {
   this.getBrowString = this.faceList[index];
   this.textConent += this.getBrowString;
  }
  }
 },
 // 將input的內容渲染到頁面上
 referContent() {
  if (this.textConent == "") return alert("請輸入內容");
  // 存入
  this.content.push(this.textConent);
  // 清空input數據
  this.textConent = "";
  // 關閉表情列表
  this.faceShow = false;
 }
 },
};

css區(qū)域

<style lang="scss" scoped>
body,
html,
head,
.home {
 width: 100%;
 height: 100%;
 padding: 0px;
 position: relative;
 margin: 0px;
}
.home {
 width: 100%;
 height: 100%;
 .contentBox {
 width: 100%;
 display: flex;
 flex-direction: column;
 justify-content: flex-end;
 text-align: right;
 position: absolute;
 bottom: 60px;
 li {
  list-style: none;
  padding: 4px 10px;
  margin-bottom: 20px;
  span {
  background: #e6e6e6;
  border-radius: 5px;
  padding: 5px;
  }
 }
 }
 .contFaceShow {
 position: absolute;
 bottom: 240px;
 }
 .box {
 width: 100%;
 height: 40px;
 margin: auto;
 position: absolute;
 bottom: 0px;
 .inputContent {
  position: absolute;
  bottom: 0%;
  left: 0%;
  width: 74%;
  height: 100%;
  border: 1px solid #ccc;
 }
 .referBut {
  position: absolute;
  bottom: 0%;
  right: 2%;
  height: 100%;
  width: 10%;
  border-radius: 5px;
  background: #aaaaff;
  color: #fff;
 }
 .faceBut {
  position: absolute;
  bottom: 0;
  right: 13%;
  height: 100%;
  width: 10%;
  border-radius: 5px;
  background: #aaaaff;
  color: #fff;
 }
 }
 .boxFaceShow {
 position: absolute;
 bottom: 200px !important;
 }
 .browBox {
 width: 100%;
 height: 200px;
 background: #e6e6e6;
 position: absolute;
 bottom: 0px;
 overflow: scroll;
 ul {
  display: flex;
  flex-wrap: wrap;
  padding: 10px;
  li {
  width: 14%;
  font-size: 26px;
  list-style: none;
  text-align: center;
  }
 }
 }
}
</style>


<style lang="scss">
body,
html,
head {
 width: 100%;
 height: 100%;
 position: relative;
}
#app {
 height: 100%;
}
* {
 padding: 0px;
 margin: 0px;
}
</style>

代碼在我的github上:github地址

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Vue render深入開發(fā)講解

    Vue render深入開發(fā)講解

    這篇文章主要介紹了Vue render深入開發(fā)講解
    2018-04-04
  • vue3+ts+element-plus實際開發(fā)之統(tǒng)一調用彈窗封裝的詳細過程

    vue3+ts+element-plus實際開發(fā)之統(tǒng)一調用彈窗封裝的詳細過程

    這篇文章主要介紹了vue3+ts+element-plus實際開發(fā)之統(tǒng)一調用彈窗封裝的詳細過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-03-03
  • vue移動端屏幕適配詳解

    vue移動端屏幕適配詳解

    這篇文章主要介紹了vue移動端屏幕適配,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • vue3?騰訊地圖設置簽到范圍并獲取經緯度的實現代碼

    vue3?騰訊地圖設置簽到范圍并獲取經緯度的實現代碼

    本文給大家介紹vue3?騰訊地圖設置簽到范圍并獲取經緯度的實現代碼,本文通過示例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2022-05-05
  • Vue 實現輸入框新增搜索歷史記錄功能

    Vue 實現輸入框新增搜索歷史記錄功能

    這篇文章主要介紹了Vue 輸入框新增搜索歷史記錄功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • Vue echarts封裝實現流程

    Vue echarts封裝實現流程

    這篇文章主要介紹了Vue echarts封裝的實現,Echarts,它是一個與框架無關的JS圖表庫,但是它基于JS,這樣很多框架都能使用它
    2023-01-01
  • Vue中金額、日期格式化插件@formatjs/intl的使用及說明

    Vue中金額、日期格式化插件@formatjs/intl的使用及說明

    這篇文章主要介紹了Vue中金額、日期格式化插件@formatjs/intl的使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • vue組件打包并發(fā)布到npm的全過程

    vue組件打包并發(fā)布到npm的全過程

    這篇文章主要介紹了vue組件打包并發(fā)布到npm的全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue.js中引入vuex儲存接口數據及調用的詳細流程

    vue.js中引入vuex儲存接口數據及調用的詳細流程

    這篇文章主要給大家介紹了關于在vue.js中引入vuex儲存接口數據及調用的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-12-12
  • Vue根據條件添加click事件的方式

    Vue根據條件添加click事件的方式

    今天小編就為大家分享一篇Vue根據條件添加click事件的方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11

最新評論