日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

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

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

<template> <section > <div v-for='(item,index) in msgs' :key = index><img :src='http://m.b3g6.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://m.b3g6.com/bcjs/’./emoji/’+ item + ’.png’'></div> </div> </div></template><script>import { sendMsg } from '@/ws'; //是一個長連接import _ from 'lodash';//這個是js一個很強大的庫 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)不顯示 點擊按鈕顯示 點擊的按鈕上可以寫@click=’emojiShow=emojiShow’這種寫法 }; }, methods: { customEmoji(text) { //這個函數(shù)就是服務(wù)器端把傳過來的名稱轉(zhuǎn)化為圖片的 return text.replace(/[([A-Za-z0-9_]+)]/g, ’<img src='http://m.b3g6.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>

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

我是用的本地json數(shù)據(jù)實現(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;}/* 正在點擊的鏈接*/.emotionItem:active { text-decoration: none;}</style>

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

標(biāo)簽: Vue
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
中文一区一区三区免费在线观 | 尤物网精品视频| 日韩成人三级| 亚洲午夜91| 视频一区国产视频| 欧美一区精品| 国产一区二区三区不卡av| av在线资源| av不卡在线看| 国产色99精品9i| 久久影视三级福利片| 日韩中文首页| 日韩中文字幕一区二区三区| 日本国产欧美| 国产精品任我爽爆在线播放| www.com.cn成人| 欧美日韩少妇| 国产精品麻豆成人av电影艾秋| 高清一区二区| 在线亚洲精品| 麻豆国产精品视频| 久久中文字幕二区| 亚洲毛片在线| 中文在线免费视频| 999在线观看精品免费不卡网站| 亚洲丝袜啪啪| 久久久久久婷| 免费看精品久久片| 国产一区二区亚洲| 精品在线91| 91免费精品国偷自产在线在线| 国产一区二区三区不卡视频网站 | 久久青青视频| 日韩中文欧美在线| 精品国产精品国产偷麻豆| 蜜桃成人av| 欧美日本不卡高清| 欧美日韩国产一区二区三区不卡| 亚洲va久久久噜噜噜久久| 精品一区二区三区亚洲| 午夜精品一区二区三区国产| 国产精品久久久久久久久免费高清| 欧美日韩视频网站| 国产亚洲电影| 国产一区导航| 亚洲精品**中文毛片| 亚洲视频二区| 天堂日韩电影| 国产精品对白| 中文字幕日韩欧美精品高清在线| 日韩在线观看| 美女性感视频久久| 亚洲三级精品| 高潮一区二区| 国产精品一区二区三区av麻| 在线亚洲自拍| 久久久亚洲一区| 国产精品jk白丝蜜臀av小说| 中文在线不卡| 91精品一区国产高清在线gif| 老司机精品在线| 国产一精品一av一免费爽爽| 免费视频最近日韩| 狠狠干综合网| 国产一区观看| 九九精品调教| 久久午夜影院| 国产日韩亚洲| 亚洲欧美日韩在线观看a三区| 亚洲性色av| 精品国产一区二区三区av片| 久久精品xxxxx| 日韩欧美三区| 蜜桃久久久久久| 国产精品美女久久久浪潮软件| 伊伊综合在线| 九九99久久精品在免费线bt| 欧美日韩亚洲一区二区三区在线| 四虎精品一区二区免费| 视频精品一区二区| 视频在线观看一区二区三区| 国产精品丝袜xxxxxxx| 午夜av一区| 午夜av成人| 欧美二三四区| 久久久久中文| 国产高清一区| 欧美网站在线| 国产精品社区| 免费在线观看一区二区三区| 亚洲一级在线| 亚洲丝袜美腿一区| 亚洲人亚洲人色久| 综合五月婷婷| 欧美亚洲色图校园春色| 国产欧美一区二区三区国产幕精品 | 在线一区视频| 国产精品婷婷| 蜜桃一区二区三区在线观看| 蜜臀av国产精品久久久久| 亚洲人成高清| 日韩av一区二| 国产精品一区三区在线观看| 老鸭窝一区二区久久精品| 精品一区二区三区四区五区| 麻豆视频久久| 精品少妇一区| 中文字幕一区久| 亚洲女同中文字幕| 麻豆精品91| 国产免费播放一区二区| 精品三级久久久| 99国产精品一区二区| 蜜桃久久av| 91精品国产自产在线丝袜啪| 欧美黑人做爰爽爽爽| 神马午夜在线视频| 午夜电影亚洲| 日本欧美大码aⅴ在线播放| 久久影院一区二区三区| 精品国产亚洲日本| 成人精品动漫一区二区三区| 亚州av乱码久久精品蜜桃| 视频一区二区三区中文字幕| 久久国产视频网| 日韩伦理在线一区| 国产亚洲精品v| 你懂的亚洲视频| 亚洲电影在线| 日本强好片久久久久久aaa| 精品国产aⅴ| 在线视频日韩| 久久午夜影院| 蜜芽一区二区三区| 成人在线视频免费| 欧美日韩国产在线一区| 日韩va欧美va亚洲va久久| 国产在线观看www| 亚洲我射av| 黄色aa久久| 热久久免费视频| 成人台湾亚洲精品一区二区| 欧美女激情福利| 国产激情久久| 久久久五月天| 久久精品97| 91成人网在线观看| 麻豆国产精品777777在线| 在线亚洲激情| 精品国产精品久久一区免费式| 国产伊人精品| 国产精品主播在线观看| 日韩午夜黄色| 欧美激情国产在线| 亚洲精选91| 久久精品中文| 国产精品久久久久久久免费软件 | 久久免费视频66| 久久成人一区| 一区二区三区四区日本视频| 亚洲三级av| 成人久久一区| 国产精品美女在线观看直播| 久久国产精品亚洲77777| 日本久久黄色| 久久国产乱子精品免费女| 国产亚洲毛片| 久久久久午夜电影| 成人在线视频区| 欧美亚洲免费| 亚洲一区二区免费在线观看| 久久激情婷婷| 成人在线黄色| 你懂的亚洲视频| 日韩av电影一区| 亚洲综合不卡| 日韩天堂在线| 久久天堂影院| 国产精品任我爽爆在线播放 | 99成人超碰| 精品久久亚洲| 国产午夜一区| 亚洲色图国产| 国产美女精品| 亚洲欧美综合| 日本а中文在线天堂| 麻豆一区二区三| 国产日韩一区| 亚洲专区视频| 亚洲理论在线| 亚洲精品无吗| 亚洲永久精品唐人导航网址| 国产精品7m凸凹视频分类| 三级小说欧洲区亚洲区| 国产一区二区精品久| 欧美xxxx性| 久久91视频| 激情久久一区二区| 国产精品二区不卡| 国产成人精品三级高清久久91|