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 相关文章推荐
javascript dom 操作详解 js加强
Jul 13 Javascript
JavaScript 模拟用户单击事件
Dec 31 Javascript
javascript中检测变量的类型的代码
Dec 28 Javascript
图解js图片轮播效果
Dec 20 Javascript
jQuery实现两列等高并自适应高度
Dec 22 Javascript
Vue2组件tree实现无限级树形菜单
Mar 29 Javascript
jQuery实现 RadioButton做必选校验功能
Jun 15 jQuery
JS设计模式之惰性模式(二)
Sep 29 Javascript
JS高级技巧(简洁版)
Jul 29 Javascript
Vue常见面试题整理【值得收藏】
Sep 20 Javascript
JavaScript常见事件对象与操作实例总结
Jan 05 Javascript
微信小程序 组件的外部样式externalClasses使用详解
Sep 06 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的数据字典
2016/07/07 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
2016/12/28 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
2019/04/10 PHP
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
2013/11/19 Javascript
一个JavaScript递归实现反转数组字符串的实例
2014/10/14 Javascript
TypeError document.getElementById(...) is null错误原因
2015/05/18 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
js实现图片360度旋转
2017/01/22 Javascript
利用JQuery操作iframe父页面、子页面的元素和方法汇总
2017/09/10 jQuery
Vuex 入门教程
2018/01/10 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
2019/12/04 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
2019/12/10 Javascript
vue从后台渲染文章列表以及根据id跳转文章详情详解
2020/12/14 Vue.js
python二叉树遍历的实现方法
2013/11/21 Python
windows下python模拟鼠标点击和键盘输示例
2014/02/28 Python
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
详解python中的json的基本使用方法
2016/12/21 Python
django定期执行任务(实例讲解)
2017/11/03 Python
python 对dataframe下面的值进行大规模赋值方法
2018/06/09 Python
python matlibplot绘制多条曲线图
2021/02/19 Python
Python设计模式之命令模式原理与用法实例分析
2019/01/11 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
2019/08/15 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
2019/09/18 Python
python 带时区的日期格式化操作
2020/10/23 Python
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
我的applet原先好好的, 一放到web server就会有问题,为什么?
2016/05/10 面试题
静态变量和实例变量的区别
2015/07/07 面试题
创建省级文明单位实施方案
2014/02/27 职场文书
党员个人查摆剖析材料
2014/10/16 职场文书
CSS 实现多彩、智能的阴影效果
2021/05/12 HTML / CSS
详解MySQL的Seconds_Behind_Master
2021/05/18 MySQL
漫画「古见同学有交流障碍症」第25卷封面公开
2022/03/21 日漫
Win11怎么解除儿童账号限制?Win11解除微软儿童账号限制方法
2022/07/07 数码科技