成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

vue界面發(fā)送表情的實(shí)現(xiàn)代碼

瀏覽:122日期:2022-11-23 18:48:22

完全照搬不一定能寫出來 只是讓看個思想

<template> <section > <div v-for='(item,index) in msgs' :key = index><img :src='http://www.piao2010.com/bcjs/item.uid == myInfo.uid ? myInfo.avatar :otherInfo.avatar' :class='item.uid == myInfo.uid ? ’headerleft’ : ’headerright’'><p : v-html='customEmoji(item.content)'></p> </div> </section> <div v-if='emojiShow'> //首先根據(jù)這個來判斷發(fā)送表情彈窗用不用出現(xiàn) <div v-for='list in imgs'><div v-for='item in list' @click='inputEmoji(item)'> <img :src='http://www.piao2010.com/bcjs/’./emoji/’+ item + ’.png’'></div> </div> </div></template><script>import { sendMsg } from '@/ws'; //是一個長連接import _ from 'lodash';//這個是js一個很強(qiáng)大的庫 import eventBus from ’@/eventBus’//這是一個子父傳遞的公共文件console.log(emoji)export default { data() { this.imgs = _.chunk(emoji, 6) //這個是調(diào)用lodash庫的chunk方法 把 六個元素分成一個數(shù)組只不過是emoji這個數(shù)組中的二維數(shù)組 return { emojiShow: false //剛開始默認(rèn)不顯示 點(diǎn)擊按鈕顯示 點(diǎn)擊的按鈕上可以寫@click=’emojiShow=emojiShow’這種寫法 }; }, methods: { customEmoji(text) { //這個函數(shù)就是服務(wù)器端把傳過來的名稱轉(zhuǎn)化為圖片的 return text.replace(/[([A-Za-z0-9_]+)]/g, ’<img src='http://www.piao2010.com/bcjs/emoji/$1.png' style='width:30px; height:30px;'>’) }, inputEmoji(pic) { this.content += `[${pic}]`//傳過來的名字轉(zhuǎn)為圖片 }};</script><style scoped>@import ’../../assets/css/dialogue.css’;#emoji-list { height: 230px; background: #fff;}#emoji-list .cell { line-height: 13vh; border-right: 1rpx solid #ddd; border-bottom: 1rpx solid #ddd;}.flex-row { display: flex; flex-direction: row; justify-content: center; align-items: center;}.flex-column { display: flex; flex-direction: column; justify-content: center; align-items: stretch;}.flex-cell { flex: 1;}.cell img { width: 35px; height: 35px;}</style>

補(bǔ)充知識:vue+element-ui實(shí)現(xiàn)聊天表情包

我是用的本地json數(shù)據(jù)實(shí)現(xiàn)的,表情不是很多,首先創(chuàng)建個json文件,代碼如下:

[{ 'codes': '1F600', 'char': '😀', 'name': 'grinning face' }, { 'codes': '1F603', 'char': '😃', 'name': 'grinning face with big eyes' }, { 'codes': '1F604', 'char': '😄', 'name': 'grinning face with smiling eyes' }, { 'codes': '1F601', 'char': '😁', 'name': 'beaming face with smiling eyes' }, { 'codes': '1F606', 'char': '😆', 'name': 'grinning squinting face' }, { 'codes': '1F605', 'char': '😅', 'name': 'grinning face with sweat' }, { 'codes': '1F923', 'char': '🤣', 'name': 'rolling on the floor laughing' }, { 'codes': '1F602', 'char': '😂', 'name': 'face with tears of joy' }, { 'codes': '1F642', 'char': '🙂', 'name': 'slightly smiling face' }, { 'codes': '1F643', 'char': '🙃', 'name': 'upside-down face' }, { 'codes': '1F609', 'char': '😉', 'name': 'winking face' }, { 'codes': '1F60A', 'char': '😊', 'name': 'smiling face with smiling eyes' }, { 'codes': '1F607', 'char': '😇', 'name': 'smiling face with halo' }, { 'codes': '1F970', 'char': '🥰', 'name': 'smiling face with hearts' }, { 'codes': '1F60D', 'char': '😍', 'name': 'smiling face with heart-eyes' }, { 'codes': '1F929', 'char': '🤩', 'name': 'star-struck' }, { 'codes': '1F618', 'char': '😘', 'name': 'face blowing a kiss' }, { 'codes': '1F617', 'char': '😗', 'name': 'kissing face' }, { 'codes': '1F61A', 'char': '😚', 'name': 'kissing face with closed eyes' }, { 'codes': '1F619', 'char': '😙', 'name': 'kissing face with smiling eyes' }, { 'codes': '1F44B', 'char': '👋', 'name': 'waving hand' }, { 'codes': '1F91A', 'char': '🤚', 'name': 'raised back of hand' }, { 'codes': '1F590', 'char': '🖐', 'name': 'hand with fingers splayed' }, { 'codes': '270B', 'char': '✋', 'name': 'raised hand' }, { 'codes': '1F596', 'char': '🖖', 'name': 'vulcan salute' }, { 'codes': '1F44C', 'char': '👌', 'name': 'OK hand' }, { 'codes': '1F90F', 'char': '🤏', 'name': 'pinching hand' }, { 'codes': '270C', 'char': '✌', 'name': 'victory hand' }, { 'codes': '1F91E', 'char': '🤞', 'name': 'crossed fingers' }, { 'codes': '1F91F', 'char': '🤟', 'name': 'love-you gesture' }, { 'codes': '1F918', 'char': '🤘', 'name': 'sign of the horns' }, { 'codes': '1F919', 'char': '🤙', 'name': 'call me hand' }, { 'codes': '1F448', 'char': '👈', 'name': 'backhand index pointing left' }, { 'codes': '1F449', 'char': '👉', 'name': 'backhand index pointing right' }, { 'codes': '1F446', 'char': '👆', 'name': 'backhand index pointing up' }, { 'codes': '1F595', 'char': '🖕', 'name': 'middle finger' }, { 'codes': '1F447', 'char': '👇', 'name': 'backhand index pointing down' }, { 'codes': '261D FE0F', 'char': '☝️', 'name': 'index pointing up' }, { 'codes': '1F44D', 'char': '👍', 'name': 'thumbs up' }, { 'codes': '1F44E', 'char': '👎', 'name': 'thumbs down' }, { 'codes': '270A', 'char': '✊', 'name': 'raised fist' }, { 'codes': '1F44A', 'char': '👊', 'name': 'oncoming fist' }, { 'codes': '1F91B', 'char': '🤛', 'name': 'left-facing fist' }, { 'codes': '1F91C', 'char': '🤜', 'name': 'right-facing fist' }]

vue組件中代碼直接貼出來,廢話不多說:

<template> <div class='chatIcon'> <el-popover placement='top-start' trigger='click' > <div class='emotionList'> <a href='javascript:void(0);' rel='external nofollow' @click='getEmo(index)' v-for='(item, index) in faceList' :key='index' >{{ item }}</a > </div> <el-button icon='iconfont icon-biaoqing' slot='reference' ></el-button> </el-popover> <el-input v-model='textarea' resize='none' type='textarea' rows='5' @keyup.enter.native='sendInfo' ></el-input> </div></template><script>const appData = require('@/utils/emoji.json');export default { mounted() { for (let i in appData) { this.faceList.push(appData[i].char); } }, data() { return { faceList: [], textarea: '' }; }, methods: { getEmo(index) { var textArea = document.getElementById('textarea'); function changeSelectedText(obj, str) { if (window.getSelection) { // 非IE瀏覽器 textArea.setRangeText(str); // 在未選中文本的情況下,重新設(shè)置光標(biāo)位置 textArea.selectionStart += str.length; textArea.focus(); } else if (document.selection) { // IE瀏覽器 obj.focus(); var sel = document.selection.createRange(); sel.text = str; } } changeSelectedText(textArea, this.faceList[index]); this.textarea = textArea.value; // 要同步data中的數(shù)據(jù) // console.log(this.faceList[index]); return; } }};</script><style lang='scss'>/* el-popover是和app同級的,所以scoped的局部屬性設(shè)置了無效 *//* 需要設(shè)置全局style */.el-popover { height: 200px; width: 400px; overflow: scroll; overflow-x: auto;}</style><style scoped>.chatIcon { padding: 0 10px; font-size: 25px;}.emotionList { display: flex; flex-wrap: wrap; padding: 5px;}.emotionItem { width: 10%; font-size: 20px; text-align: center;}/*包含以下四種的鏈接*/.emotionItem { text-decoration: none;}/*正常的未被訪問過的鏈接*/.emotionItem:link { text-decoration: none;}/*已經(jīng)訪問過的鏈接*/.emotionItem:visited { text-decoration: none;}/*鼠標(biāo)劃過(停留)的鏈接*/.emotionItem:hover { text-decoration: none;}/* 正在點(diǎn)擊的鏈接*/.emotionItem:active { text-decoration: none;}</style>

以上這篇vue界面發(fā)送表情的實(shí)現(xiàn)代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Vue
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
色屁屁一区二区| 99久久伊人精品| 91丨九色丨国产丨porny| 欧美日韩三级一区| 欧美日韩国产在线观看| 蜜臀av性久久久久av蜜臀妖精 | 一本大道久久a久久精品综合| 欧美性受xxxx| 久久国产免费看| 欧美人牲a欧美精品| 国产美女久久久久| 91麻豆精品久久久久蜜臀| 国产在线精品视频| 777奇米四色成人影色区| 国产精品99久久不卡二区| 欧美一区二区三区免费| 丰满少妇久久久久久久| 日韩你懂的电影在线观看| 大桥未久av一区二区三区中文| 日韩免费成人网| 99国产精品久久久久久久久久久| 久久美女高清视频| 欧美99在线视频观看| 国产精品久久三| 99视频在线精品国自产拍免费观看| 一区二区三区美女| 在线影院国内精品| 国产一区二区电影| 精品99一区二区三区| 91啦中文在线观看| 中文字幕一区二区在线观看| 国产欧美日韩亚洲| 天天综合日日夜夜精品| 欧美日韩一区中文字幕| 国产在线精品一区二区不卡了| 日韩一区二区免费在线观看| 91丨国产丨九色丨pron| 中文字幕一区二区三区精华液| 日韩亚洲国产欧美| 天天综合日日夜夜精品| 欧美日韩一卡二卡三卡| 成人av在线观| 中文字幕在线不卡| 久久综合给合久久狠狠色| 美女精品一区二区| 精品三级在线观看| 亚洲高清不卡| 婷婷开心激情综合| 91精品欧美久久久久久动漫| 91丨九色丨黑人外教| 亚洲免费观看在线视频| 色婷婷一区二区三区四区| 国产一区二区在线观看免费| 久久亚洲精品国产精品紫薇 | 欧美喷潮久久久xxxxx| 99视频精品全部免费在线| 亚洲私人影院在线观看| 日本高清视频一区二区| 成人91在线观看| 亚洲欧美一区二区视频| 日本高清免费不卡视频| 国产精品12区| 中文字幕乱码久久午夜不卡| 久久国产主播精品| 国产很黄免费观看久久| 国产精品成人免费在线| 在线免费观看一区| 欧美精品导航| 日本vs亚洲vs韩国一区三区 | 一区在线观看免费| 91黄色免费网站| 国产xxx精品视频大全| 国产精品不卡在线观看| 欧美制服丝袜第一页| 91在线视频官网| 性做久久久久久免费观看| 日韩欧美中文字幕公布| 亚洲国产午夜| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲国产精品天堂| 日韩视频一区二区三区 | 日韩一区二区三区观看| 激情婷婷久久| 久久国产三级精品| 国产精品黄色在线观看| 欧美三级电影在线看| 午夜精品国产| 极品美女销魂一区二区三区 | 久久久久久久久久久电影| 免费视频一区| 91视视频在线观看入口直接观看www| 午夜精品爽啪视频| 久久精品一二三| 一本久久精品一区二区| 91麻豆自制传媒国产之光| 水蜜桃久久夜色精品一区的特点| 久久久影视传媒| 欧美性做爰猛烈叫床潮| 亚洲人体一区| 成人免费视频免费观看| 日韩不卡免费视频| 国产精品伦理一区二区| 91精品国产综合久久久蜜臀粉嫩 | 欧美美女bb生活片| 9色国产精品| 99久久国产综合精品色伊| 日韩二区三区四区| ●精品国产综合乱码久久久久| 欧美精品第一页| 亚洲免费在线精品一区| 欧美精品黄色| 国产91精品露脸国语对白| 三级在线观看一区二区| 日韩一区日韩二区| 久久综合视频网| 欧美日韩中文精品| 先锋亚洲精品| 黑人巨大精品欧美一区二区小视频| 国产91露脸合集magnet| 日韩中文字幕91| 中文字幕永久在线不卡| 精品少妇一区二区三区免费观看| 91福利区一区二区三区| 亚洲国产高清视频| 欧美成人日韩| 成人一区二区在线观看| 美国十次了思思久久精品导航| 夜夜爽夜夜爽精品视频| 日本一区二区三区高清不卡| 日韩欧美黄色影院| 欧美伊人久久大香线蕉综合69| 亚洲一区二区免费看| 黑丝一区二区三区| www.av精品| 国产成人啪午夜精品网站男同| 日韩电影在线一区| 亚洲一区二区成人在线观看| 国产精品萝li| 中文字幕va一区二区三区| 精品日韩在线一区| 欧美一区二区三区性视频| 欧美日韩亚洲综合| 一本色道久久综合狠狠躁的推荐| 国产亚洲精品bv在线观看| 亚洲大片在线| 国模大胆一区二区三区| 欧美尤物一区| 99re成人精品视频| 成人午夜激情影院| 国产成人午夜视频| 国产精品一区二区久久不卡| 裸体一区二区三区| 美女视频一区二区三区| 日韩电影在线一区二区三区| 天天爽夜夜爽夜夜爽精品视频| 亚洲大片一区二区三区| 亚洲一区二区三区小说| 伊人夜夜躁av伊人久久| 一区二区三区精品| 亚洲一区二区三区四区的| 亚洲美女屁股眼交3| 国产精品久久久久久亚洲毛片| 日本一区二区三区四区| 国产精品水嫩水嫩| 欧美激情综合在线| 国产精品欧美久久久久一区二区| 国产欧美一区二区精品忘忧草| 国产亚洲成aⅴ人片在线观看| 久久精品视频一区二区三区| 国产视频一区不卡| 亚洲国产高清aⅴ视频| 国产精品毛片久久久久久| 国产精品久久精品日日| 亚洲色图20p| 亚洲国产aⅴ成人精品无吗| 亚洲午夜免费福利视频| 亚洲成人动漫精品| 免费久久99精品国产| 麻豆精品视频在线观看免费| 久久99国产精品久久99| 国产福利一区在线观看| 9人人澡人人爽人人精品| 你懂的视频一区二区| 亚洲午夜激情在线| 亚洲一区亚洲| 欧美亚洲动漫另类| 欧美一区二区三区电影| 精品福利av导航| 国产精品嫩草久久久久| 一区二区三区免费观看| 日韩制服丝袜av| 国产一区二区三区四区五区美女| 成人av电影免费观看| 国产精品九九| 国产精品亚洲综合色区韩国| 久久综合九色综合欧美狠狠| 欧美欧美午夜aⅴ在线观看| 精品国产欧美一区二区| 欧美国产精品v| 亚洲午夜激情av|