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 相关文章推荐
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
Oct 24 Javascript
常用的JavaScript验证正则表达式汇总
Nov 26 Javascript
jQuery实现异步获取json数据的2种方式
Aug 29 Javascript
jQuery如何使用自动触发事件trigger
Nov 29 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
Jan 10 Javascript
node.js中debug模块的简单介绍与使用
Apr 25 Javascript
three.js中文文档学习之创建场景
Nov 20 Javascript
基于js中的存储键值对以及注意事项介绍
Mar 30 Javascript
Vue源码探究之虚拟节点的实现
Apr 17 Javascript
JS 自执行函数原理及用法
Aug 05 Javascript
Vue组件通信中非父子组件传值知识点总结
Dec 05 Javascript
JS实现长图上下滚动效果
Mar 19 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 输出URL的快捷方式示例代码
2013/09/22 PHP
php发送post请求函数分享
2014/03/06 PHP
php单文件版在线代码编辑器
2015/03/12 PHP
javascript内置对象arguments详解
2014/03/16 Javascript
JS获取时间的方法
2015/01/21 Javascript
JavaScript获取当前网页标题(title)的方法
2015/04/03 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
javascript的理解及经典案例分析
2016/05/20 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
微信小程序 action-sheet底部菜单详解
2016/10/27 Javascript
微信小程序 css使用技巧总结
2017/01/09 Javascript
详解Vue中状态管理Vuex
2017/05/11 Javascript
Ionic2开发环境搭建教程
2020/08/20 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
vue实现简单加法计算器
2020/10/22 Javascript
Vue组件生命周期运行原理解析
2020/11/25 Vue.js
[02:47]DOTA2英雄基础教程 野性怒吼兽王
2013/12/05 DOTA
Python中的类与对象之描述符详解
2015/03/27 Python
Python操作Excel之xlsx文件
2017/03/24 Python
Python+selenium 获取一组元素属性值的实例
2018/06/22 Python
对Python定时任务的启动和停止方法详解
2019/02/19 Python
python实现网站微信登录的示例代码
2019/09/18 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
Python设计密码强度校验程序
2020/07/30 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
草莓巧克力:Shari’s Berries
2017/02/07 全球购物
印尼网上商店:Alfacart.com
2019/03/11 全球购物
Feelunique澳大利亚:欧洲的化妆品零售电商
2019/12/18 全球购物
Myprotein西班牙官网:欧洲第一大运动营养品牌
2020/02/24 全球购物
会计与审计毕业生自荐信范文
2013/12/30 职场文书
家长给学校的建议书
2014/05/15 职场文书
入党积极分子学习优秀共产党员先进事迹思想汇报
2014/09/13 职场文书
大学推普周活动总结
2015/05/07 职场文书
一般纳税人申请报告
2015/05/18 职场文书
合同审查法律意见书
2015/06/04 职场文书
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang