加载中 ...
首页 > 新闻资讯 > 经验心得 正文

表情包 - vue/微信小程序/js /数据驱动

2019-07-12 21:48:32 来源:沈阳小程序开发 作者:沈阳软件开发

渲染:

103258xzyi8218fuv9u8vh.gif

实施起来相对简单。它使用微信的表达式包地址来更改相应的表达式dom节点。然后用v-html渲染

三、实现/原理

先把表情包展示出来

这里有一个数组,对应于文本的下标是微信表情符号的表情符号名称。例如,第i个表达式下标是索引,与微信表情符号包对应的地址是:

Const img=`$%7Bindex%7D.gif`复制代码

这样就很简单了,直接初始化表情包

注意:我在这里更改了相应的文本以##开头,并在数字的末尾。一串特定的规则,易于获取解析数据。为什么不直接存储标签,因为它仍然显示在输入框中!如果你可以输入框并显示正常表达式,那就更好了。欢迎留言!

//初始化表达式initEmotion(){const list=this.emotionList; let emotionArr=[]; list.map((item,index)=> {emotionArr.push({name:`#$ {item};`,Url:`$%7Bindex%7D.gif`});}); this.emotionArr=emotionArr;复制代码

拿到带有表情地址的数组,知道怎么渲染了吧复制代码

然后点击的时候直接插入到输入框handEmotion(item) { this.sendInfo += item.name;}复制代码

插入到输入框光标位置`` //..... //这个问题问的好! ```复制代码

获取并展示表情包的消息内容

获取请求数据,它应该是我们为表达式特别修改的字符串,例如'hello world#hello; '#hello inside;它应该转换为表情符号地址,然后呈现。

正则表达式/\#[\ u4E00- \ u9FA5] {1,3} \;/gi:表示以#开头;结尾字符中间可以有1-3个字符

//将匹配结果替换为表情符号item.Info=item.Info.replace(/\#[\ u4E00- \ u9FA5] {1,3} \;/gi,words=> {let word=words.replace (/\#| \;/gi,''); let index=this.emotionList.indexOf(word); if(index!==-1){return`$%7Bindex%7D.gif`;} else {return words}});码

“沈阳软件公司”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与

我们联系删除或处理,客服QQ:55506560,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同

其观点或证实其内容的真实性。