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 相关文章推荐
jMessageBox 基于jQuery的窗口插件
Dec 09 Javascript
javascript最常用与实用的创建类的代码
Aug 12 Javascript
jQuery 1.5 源码解读 面向中高阶JSER
Apr 05 Javascript
jquery 取子节点及当前节点属性值
Jul 25 Javascript
理解javascript封装
Feb 23 Javascript
jQuery toggle 代替方法
Mar 22 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
Apr 18 Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
Dec 20 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
Aug 12 Javascript
vue-cli 目录结构详细讲解总结
Jan 15 Javascript
小程序实现列表展开收起效果
Jul 29 Javascript
JavaScript实现复选框全选功能
Apr 11 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 mysql Errcode: 28 终极解决方法
2009/07/01 PHP
PHP session会话的安全性分析
2011/09/08 PHP
iis下php mail函数的sendmail配置方法(官方推荐)
2012/04/25 PHP
浅析php过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
2014/06/22 PHP
Drupal简体中文语言包安装教程
2014/09/27 PHP
Laravel5中防止XSS跨站攻击的方法
2016/10/10 PHP
php实现解析xml并生成sql语句的方法
2018/02/03 PHP
给网站上的广告“加速”显示的方法
2007/04/08 Javascript
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
2013/08/18 Javascript
jquery.cookie实现的客户端购物车操作实例
2015/12/24 Javascript
jquery操作select元素和option的实例代码
2016/02/03 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
ES6中非常实用的新特性介绍
2016/03/10 Javascript
全面理解JavaScript中的闭包
2016/05/12 Javascript
第九篇Bootstrap导航菜单创建步骤详解
2016/06/21 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
2017/02/18 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
bootstrap suggest搜索建议插件使用详解
2017/03/25 Javascript
详解如何去除vue项目中的#——History模式
2017/10/13 Javascript
webpack配置之后端渲染详解
2017/10/26 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
Nuxt页面级缓存的实现
2020/03/09 Javascript
python编程羊车门问题代码示例
2017/10/25 Python
python中Apriori算法实现讲解
2017/12/10 Python
Python unittest单元测试框架总结
2018/09/08 Python
一份全面的PHP面试问题考卷
2012/07/15 面试题
清洁工岗位职责
2014/01/29 职场文书
涪陵白鹤梁导游词
2015/02/09 职场文书
2015国际残疾人日活动总结
2015/03/24 职场文书
承诺书范本大全
2015/05/04 职场文书
Python的这些库,你知道多少?
2021/06/09 Python
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang