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 相关文章推荐
JS文本框默认值处理详解
Jul 10 Javascript
各种常用的JS函数整理
Oct 25 Javascript
jQuery对Select的操作大集合(收藏)
Dec 28 Javascript
jQuery事件绑定与解除绑定实现方法
Apr 15 Javascript
javascript中返回顶部按钮的实现
May 05 Javascript
js封装tab标签页实例分享
Dec 19 Javascript
Angularjs中使用layDate日期控件示例
Jan 11 Javascript
react-native封装插件swiper的使用方法
Mar 20 Javascript
Angular 如何使用第三方库的方法
Apr 18 Javascript
vue多页面开发和打包正确处理方法
Apr 20 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
Aug 29 Javascript
利用Promise自定义一个GET请求的函数示例代码
Mar 20 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 文章中的远程图片采集到本地的代码
2009/07/30 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
2014/06/08 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
2014/07/22 PHP
PHP常用处理静态操作类
2015/04/03 PHP
php防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
thinkphp项目如何自定义微信分享描述内容
2017/02/20 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
date.parse在IE和FF中的区别
2010/07/29 Javascript
图片在浏览器中底部对齐 解决方法之一
2011/11/30 Javascript
JavaScript中两个感叹号的作用说明
2011/12/28 Javascript
初识angular框架后的所思所想
2016/02/19 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
jQuery扩展实现text提示还能输入多少字节的方法
2016/11/28 Javascript
Vue学习笔记进阶篇之vue-router安装及使用方法
2017/07/19 Javascript
javascript帧动画(实例讲解)
2017/09/02 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
详解Vue CLI3 多页应用实践和源码设计
2018/08/30 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
[01:14]英雄,所敬略同——2018完美盛典宣传视频
2018/12/05 DOTA
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
Python实现程序的单一实例用法分析
2015/06/03 Python
python制作一个桌面便签软件
2015/08/09 Python
Django models filter筛选条件详解
2020/03/16 Python
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
2014/05/15 HTML / CSS
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
高档奢华时装在线目的地:FORWARD by elyse walker
2017/10/16 全球购物
党支部书记先进事迹
2014/01/17 职场文书
诚信考试承诺书
2014/03/27 职场文书
教师年度个人总结
2015/02/11 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书
python利用pandas分析学生期末成绩实例代码
2021/07/09 Python
Python Pygame实战在打砖块游戏的实现
2022/03/17 Python
Go语言的协程上下文的几个方法和用法
2022/04/11 Golang