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 相关文章推荐
XmlUtils JS操作XML工具类
Oct 01 Javascript
浅析javascript中function 的 length 属性
May 27 Javascript
一个JavaScript用逗号分割字符串实例
Sep 22 Javascript
深入理解JavaScript系列(50):Function模式(下篇)
Mar 04 Javascript
javascript运动效果实例总结(放大缩小、滑动淡入、滚动)
Jan 08 Javascript
JS组件中bootstrap multiselect两大组件较量
Jan 26 Javascript
基于node实现websocket协议
Apr 25 Javascript
基于Vue.js的表格分页组件
May 22 Javascript
Angularjs 手写日历的实现代码(不用插件)
Oct 18 Javascript
浅谈如何使用webpack构建多页面应用
May 30 Javascript
Vue-cli项目部署到Nginx服务器的方法
Nov 01 Javascript
原生js+css实现tab切换功能
Sep 17 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
利用PHP实现与ASP Banner组件相似的类
2006/10/09 PHP
php 301转向实现代码
2008/09/18 PHP
PHP项目开发中最常用的自定义函数整理
2010/12/02 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
2013/05/07 PHP
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
yii使用bootstrap分页样式的实例
2017/01/17 PHP
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
JavaScript汉诺塔问题解决方法
2015/04/21 Javascript
理解JS绑定事件
2016/01/19 Javascript
一个Vue视频媒体多段裁剪组件的实现示例
2018/08/09 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
你不可不知的Vue.js列表渲染详解
2019/10/01 Javascript
VUE 组件转换为微信小程序组件的方法
2019/11/06 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
简单的通用表达式求10乘阶示例
2014/03/03 Python
Python中的错误和异常处理简单操作示例【try-except用法】
2017/07/25 Python
python3.6连接MySQL和表的创建与删除实例代码
2017/12/28 Python
python使用Pycharm创建一个Django项目
2018/03/05 Python
PyQt编程之如何在屏幕中央显示窗体的实例
2019/06/18 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
2019/08/24 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
2019/08/26 Python
Python图片的横坐标汉字实例
2019/12/04 Python
python数据预处理方式 :数据降维
2020/02/24 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
2020/02/26 Python
python使用信号量动态更新配置文件的操作
2020/04/01 Python
解决 jupyter notebook 回车换两行问题
2020/04/15 Python
Python flask框架如何显示图像到web页面
2020/06/03 Python
Darphin迪梵官网: 来自巴黎,植物和精油调制的护肤品牌
2016/10/11 全球购物
印尼美容产品购物网站:PerfectBeauty.id
2017/12/01 全球购物
英国家电购物网站:Sonic Direct
2019/03/26 全球购物
JPA的特点
2014/10/25 面试题
音乐学个人的自荐书范文
2013/11/26 职场文书
节约用水广告语60条
2019/11/14 职场文书
Java9新特性之Module模块化编程示例演绎
2022/03/16 Java/Android