Vue 表情包输入组件的实现代码


Posted in Javascript onJanuary 21, 2019

Emotion

一个用于vue的表情输入组件
https://gitee.com/jiangliyue/vue_expression_input_module

index是使用示例,emotion是组件代码(这里用的是微信表情包的地址,大家可根据需要修改)

下载安装启动项目查看效果

npm install

npm run dev

Vue 表情包输入组件的实现代码

Emotion文件夹下Emotion文件说明

实现原理是根据字段对在线表情包图片进行匹配替换
代码中 img 标签的地址即为表情图片地址,可自己根据需求替换
mounted () {
 const name = this.$el.innerHTML
 const list = ['微笑', '撇嘴', '色', '发呆', '得意', '流泪', '害羞', '闭嘴', '睡', '大哭', '尴尬', '发怒', '调皮', '呲牙', '惊讶', '难过', '酷', '冷汗', '抓狂', '吐', '偷笑', '可爱', '白眼', '傲慢', '饥饿', '困', '惊恐', '流汗', '憨笑', '大兵', '奋斗', '咒骂', '疑问', '嘘', '晕', '折磨', '衰', '骷髅', '敲打', '再见', '擦汗', '抠鼻', '鼓掌', '糗大了', '坏笑', '左哼哼', '右哼哼', '哈欠', '鄙视', '委屈', '快哭了', '阴险', '亲亲', '吓', '可怜', '菜刀', '西瓜', '啤酒', '篮球', '乒乓', '咖啡', '饭', '猪头', '玫瑰', '凋谢', '示爱', '爱心', '心碎', '蛋糕', '闪电', '炸弹', '刀', '足球', '瓢虫', '便便', '月亮', '太阳', '礼物', '拥抱', '强', '弱', '握手', '胜利', '抱拳', '勾引', '拳头', '差劲', '爱你', 'NO', 'OK', '爱情', '飞吻', '跳跳', '发抖', '怄火', '转圈', '磕头', '回头', '跳绳', '挥手', '激动', '街舞', '献吻', '左太极', '右太极']
 let index = list.indexOf(name)
 let imgHTML = `<img src="https://res.wx.qq.com/mpres/htmledition/images/icon/emotion/${index}.gif">`
 this.$nextTick(() => {
  this.$el.innerHTML = imgHTML
 })
 },

Emotion文件夹下index文件说明

通过循环列表生成表情包选择框

<div class="emotion-box-line" v-for="(line, i) in list" :key="i" >
  <emotion class="emotion-item" v-for="(item, i) in line" :key="i" @click.native="clickHandler(item)" >{{item}}</emotion>
  </div>

最后需要注意的是表情包评论后保存到后台的是相关字符串,展示时需要还原成图片,具体方法可参考index文件,我这里用了正则匹配转化,还是比较方便的

<div class="text-place">
  <!-- /\#[\u4E00-\u9FA5]{1,3}\;/gi 匹配出含 #XXX; 的字段 -->
  <p v-html="content.replace(/\#[\u4E00-\u9FA5]{1,3}\;/gi, emotion)"></p>
 </div>

就这么简单,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
从零学JSON之JSON数据结构
May 19 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
Jun 16 Javascript
跟我学习javascript的this关键字
May 28 Javascript
Flow之一个新的Javascript静态类型检查器
Dec 21 Javascript
jQuery仿IOS弹出框插件
Feb 18 Javascript
详解vue-router 2.0 常用基础知识点之router-link
May 10 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
Jul 31 Javascript
mui上拉加载更多下拉刷新数据的封装过程
Nov 03 Javascript
vue-router 组件复用问题详解
Jan 22 Javascript
微信小程序 数据缓存实现方法详解
Aug 26 Javascript
Vue实现push数组并删除的例子
Nov 01 Javascript
Ajax实现局部刷新的方法实例
Mar 31 Javascript
JS实现将对象转化为数组的方法分析
Jan 21 #Javascript
vue中过滤器filter的讲解
Jan 21 #Javascript
vue计算属性computed、事件、监听器watch的使用讲解
Jan 21 #Javascript
VUE v-model表单数据双向绑定完整示例
Jan 21 #Javascript
js中实例与对象的区别讲解
Jan 21 #Javascript
详解vue挂载到dom上会发生什么
Jan 20 #Javascript
vue-cli3 从搭建到优化的详细步骤
Jan 20 #Javascript
You might like
adodb与adodb_lite之比较
2006/12/31 PHP
深入探讨<br />和 \r\n两者有什么区别??
2013/06/05 PHP
php使用pdo连接mssql server数据库实例
2014/12/25 PHP
PHP中md5()函数的用法讲解
2019/03/30 PHP
jQuery中文入门指南,翻译加实例,jQuery的起点教程
2007/01/13 Javascript
Prototype中dom对象方法汇总
2008/09/17 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
node.js中的path.sep方法使用说明
2014/12/08 Javascript
jQuery简单操作cookie的插件实例
2016/01/13 Javascript
JS实现获取剪贴板内容的方法
2016/06/21 Javascript
基于jQuery实现数字滚动效果
2017/01/16 Javascript
JavaScript中click和onclick本质区别与用法分析
2018/06/07 Javascript
使用vuex解决刷新页面state数据消失的问题记录
2019/05/08 Javascript
浅谈layui 表单元素的选中问题
2019/10/25 Javascript
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
jQuery+ajax实现用户登录验证
2020/09/13 jQuery
[01:11:02]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
如何实现删除numpy.array中的行或列
2018/05/08 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
2018/05/24 Python
python twilio模块实现发送手机短信功能
2019/08/02 Python
python web框架 django wsgi原理解析
2019/08/20 Python
python数据分析工具之 matplotlib详解
2020/04/09 Python
Python实现计算图像RGB均值方式
2020/06/04 Python
一文详述 Python 中的 property 语法
2020/09/01 Python
python实现简单猜单词游戏
2020/12/24 Python
css3 background属性调整增强介绍
2010/12/18 HTML / CSS
mui几种页面跳转方式对比总结概括
2017/08/18 HTML / CSS
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
一年级班主任寄语
2014/01/19 职场文书
酒店员工职业生涯规划
2014/02/25 职场文书
人力资源主管职责范本
2014/03/05 职场文书
房地产项目建议书
2014/03/12 职场文书
新学期标语
2014/06/30 职场文书
材料物理专业求职信
2014/09/01 职场文书
深入理解python多线程编程
2021/04/18 Python
在JavaScript中如何使用宏详解
2021/05/06 Javascript