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 相关文章推荐
新浪刚打开页面出来的全屏广告代码
Apr 02 Javascript
给jQuery方法添加回调函数一款插件的应用
Jan 21 Javascript
基于jquery自定义的漂亮单选按钮RadioButton
Nov 19 Javascript
JS自定义对象实现Java中Map对象功能的方法
Jan 20 Javascript
js运动应用实例解析
Dec 28 Javascript
js enter键激发事件实例代码
Aug 17 Javascript
Node.js下自定义错误类型详解
Oct 17 Javascript
微信小程序 两种为对象属性赋值的方式详解
Feb 23 Javascript
剖析Angular Component的源码示例
Mar 23 Javascript
vue实现压缩图片预览并上传功能(promise封装)
Jan 10 Javascript
JS document对象简单用法完整示例
Jan 14 Javascript
基于vue hash模式微信分享#号的解决
Sep 07 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中的self关键字详解
2019/06/23 PHP
PHP终止脚本运行三种实现方法详解
2020/09/01 PHP
javascript innerHTML、outerHTML、innerText、outerText的区别
2008/11/24 Javascript
JS 类型转换常见方法小结
2010/05/31 Javascript
jQuery validate 中文API 附validate.js中文api手册
2010/07/31 Javascript
extjs 初始化checkboxgroup值的代码
2011/09/21 Javascript
jquery插件开发方法(初学者)
2012/02/03 Javascript
js 图片随机不定向浮动的实现代码
2013/07/02 Javascript
jquery删除指定的html标签并保留标签内文本内容的方法
2014/04/02 Javascript
深入理解JavaScript系列(48):对象创建模式(下篇)
2015/03/04 Javascript
js+html5通过canvas指定开始和结束点绘制线条的方法
2015/06/05 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
易操作的jQuery表单提示插件
2015/12/01 Javascript
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
2016/12/14 Javascript
js移动端图片压缩上传功能
2020/08/18 Javascript
react-native中ListView组件点击跳转的方法示例
2017/09/30 Javascript
vue接入腾讯防水墙代码
2019/05/07 Javascript
vue3.0 的 Composition API 的使用示例
2020/10/26 Javascript
python利用elaphe制作二维条形码实现代码
2012/05/25 Python
Python利用ElementTree模块处理XML的方法详解
2017/08/31 Python
Python3安装psycopy2以及遇到问题解决方法
2019/07/03 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
python 制作网站小说下载器
2021/02/20 Python
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
2019史上最全Database工程师题库
2015/12/06 面试题
网络安全方面的面试题
2015/11/04 面试题
韩国商务邀请函
2014/01/14 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
2014司机年终工作总结
2014/12/05 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
医院中层管理人员培训心得体会
2016/01/11 职场文书
浅析Python中的随机采样和概率分布
2021/12/06 Python
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技