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下的26个实用小技巧(jQuery tips, tricks &amp; solutions)
Mar 01 Javascript
JS获取select的value和text值的简单实例
Feb 26 Javascript
javascript对象的使用和属性操作示例详解
Mar 02 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
Sep 13 Javascript
javascript实现给定半径求出圆的面积
Jun 26 Javascript
bootstrapvalidator之API学习教程
Jun 29 Javascript
详解webpack的proxyTable无效的解决方案
Jun 15 Javascript
vue2使用keep-alive缓存多层列表页的方法
Sep 21 Javascript
基于node+vue实现简单的WebSocket聊天功能
Feb 01 Javascript
jquery添加div实现消息聊天框
Feb 08 jQuery
解决新建一个vue项目过程中遇到的问题
Oct 22 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
十大催泪虐心动漫电影,有几部你还没看
2020/03/04 日漫
PHP 获取客户端真实IP地址多种方法小结
2010/05/15 PHP
WordPress判断用户是否登录的代码
2011/03/17 PHP
学习php设计模式 php实现装饰器模式(decorator)
2015/12/07 PHP
php base64 编码与解码实例代码
2017/03/21 PHP
基于php流程控制语句和循环控制语句(讲解)
2017/10/23 PHP
tp5.1 实现setInc字段自动加1
2019/10/18 PHP
js传值 判断
2006/10/26 Javascript
javascript 多浏览器 事件大全
2010/03/23 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
2013/09/04 Javascript
JavaScript字符串对象charAt方法入门实例(用于取得指定位置的字符)
2014/10/17 Javascript
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
jQuery拖动元素并对元素进行重新排序
2015/12/30 Javascript
实例讲解避免javascript冲突的方法
2016/01/03 Javascript
JQuery解析XML的方法小结
2016/04/02 Javascript
BootStrap初学者对弹出框和进度条的使用感觉
2016/06/27 Javascript
原生js实现放大镜效果
2017/01/11 Javascript
微信小程序本作用域下调用全局JS详解及实例
2017/02/22 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
2017/12/27 jQuery
如何解决.vue文件url引用文件的问题
2019/01/18 Javascript
微信小程序实现图片选择并预览功能
2019/07/25 Javascript
详解Vue的组件中data选项为什么必须是函数
2020/08/17 Javascript
Apache如何部署django项目
2017/05/21 Python
Python标准库之itertools库的使用方法
2017/09/07 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
2018/05/29 Python
Django中使用第三方登录的示例代码
2018/08/20 Python
python 产生token及token验证的方法
2018/12/26 Python
python 制作网站小说下载器
2021/02/20 Python
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
Brasty罗马尼亚:购买手表、香水、化妆品、珠宝
2020/04/21 全球购物
银行职员个人的工作自我评价
2014/02/15 职场文书
个人优缺点总结
2015/02/28 职场文书
导游词之无锡华莱坞
2019/12/02 职场文书