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 相关文章推荐
Prototype Object对象 学习
Jul 12 Javascript
js模拟点击事件实现代码
Nov 06 Javascript
JS对HTML标签select的获取、添加、删除操作
Oct 17 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
Dec 28 Javascript
自己用jQuery写了一个图片的马赛克消失效果
May 04 Javascript
jQuery实现跨域
Feb 03 Javascript
javascript+css3开发打气球小游戏完整代码
Nov 28 Javascript
Vue下拉框回显并默认选中随机问题
Sep 06 Javascript
详解angular2 控制视图的封装模式
Dec 27 Javascript
JS合并两个数组的3种方法详解
Oct 24 Javascript
JSONP 的原理、理解 与 实例分析
May 16 Javascript
JS实现简易图片自动轮播
Oct 16 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 SQLite类
2009/05/07 PHP
php下把数组保存为文件格式的实例应用
2010/02/08 PHP
PHP删除HTMl标签的三种解决方法
2013/06/30 PHP
使用php方法curl抓取AJAX异步内容思路分析及代码分享
2014/08/25 PHP
php字符串过滤与替换小结
2015/01/26 PHP
Zend Framework入门教程之Zend_Mail用法示例
2016/12/08 PHP
PHP中的self关键字详解
2019/06/23 PHP
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
jquery实现带单选按钮的表格行选中时高亮显示
2013/08/01 Javascript
使用js dom和jquery分别实现简单增删改
2014/09/11 Javascript
JavaScript导出Excel实例详解
2014/11/25 Javascript
PHPExcel中的一些常用方法汇总
2015/01/23 Javascript
JQuery插入DOM节点的方法
2015/06/11 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
2015/08/15 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
使用openSpeDiv方法实现Ecshop登录弹窗框效果
2017/03/13 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
2017/07/17 jQuery
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
javascript随机变色实例代码
2019/10/15 Javascript
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
Python基于回溯法子集树模板实现图的遍历功能示例
2017/09/05 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
Python向excel中写入数据的方法
2019/05/05 Python
python使用信号量动态更新配置文件的操作
2020/04/01 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
Python tkinter界面实现历史天气查询的示例代码
2020/08/23 Python
python 将html转换为pdf的几种方法
2020/12/29 Python
全面总结使用CSS实现水平垂直居中效果的方法
2016/03/10 HTML / CSS
基于Modernizr 让网站进行优雅降级的分析
2013/04/21 HTML / CSS
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
办理护照介绍信
2014/01/16 职场文书
小学教师自我鉴定范文
2014/03/20 职场文书
新颖的化妆品活动方案
2014/08/21 职场文书
致运动员赞词
2015/07/22 职场文书