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数组与字典用法分析
Dec 13 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
Sep 10 Javascript
Jquery时间轴特效(三种不同类型)
Nov 02 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
Jun 13 Javascript
微信小程序(应用号)开发新闻客户端实例
Oct 24 Javascript
利用纯js + transition动画实现移动端web轮播图详解
Sep 10 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
Jul 12 Javascript
推荐一个基于Node.js的表单验证库
Feb 15 Javascript
JavaScript页面倒计时功能完整示例
May 15 Javascript
微信小程序数据统计和错误统计的实现方法
Jun 26 Javascript
vue 限制input只能输入正数的操作
Aug 05 Javascript
微信小程序实现底部弹出框
Nov 18 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和ACCESS写聊天室(五)
2006/10/09 PHP
windows下PHP APACHE MYSQ完整配置
2007/01/02 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
2011/01/27 PHP
为你总结一些php信息函数
2015/10/21 PHP
浅谈PHP的数据库接口和技术
2016/12/09 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
firefox插件Firebug的使用教程
2010/01/02 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
jquery数组之存放checkbox全选值示例代码
2013/12/20 Javascript
多种方法实现360浏览器下禁止自动填写用户名密码
2014/06/16 Javascript
JavaScript中的变量定义与储存介绍
2014/12/31 Javascript
移动设备web开发首选框架:zeptojs介绍
2015/01/29 Javascript
JavaScript的History API使搜索引擎抓取AJAX内容
2015/12/07 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
2017/08/31 Javascript
vue 粒子特效的示例代码
2017/09/19 Javascript
实现jquery放大镜的两种方法
2018/02/22 jQuery
vue实现浏览器全屏展示功能
2019/11/27 Javascript
基于js实现判断浏览器类型代码实例
2020/07/17 Javascript
[47:04]LGD vs infamous Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
python服务器端收发请求的实现代码
2014/09/29 Python
python开发简易版在线音乐播放器
2017/03/03 Python
python3中set(集合)的语法总结分享
2017/03/24 Python
Python 中urls.py:URL dispatcher(路由配置文件)详解
2017/03/24 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
python使用pymongo操作mongo的完整步骤
2019/04/13 Python
Appium+python自动化之连接模拟器并启动淘宝APP(超详解)
2019/06/17 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
纯css3显示隐藏一个div特效的具体实现
2014/02/10 HTML / CSS
美国受欢迎的眼影品牌:BH Cosmetics
2016/10/25 全球购物
全球知名的婚恋交友网站:Match.com
2017/01/05 全球购物
Chantelle仙黛尔内衣美国官网:法国第一品牌内衣
2018/07/26 全球购物
教师现实表现材料
2014/02/14 职场文书
金融事务专业毕业生求职信
2014/02/23 职场文书
村干部承诺书
2014/03/28 职场文书
2014年物业管理工作总结
2014/11/21 职场文书