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对外部文件的加载及对IFRMAME的加载的实现,当加载完成后,指定指向方法(方法回调)
Jul 04 Javascript
使用js检测浏览器的实现代码
May 14 Javascript
JS中的三个循环小结
Jun 20 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
Sep 28 Javascript
JS实现去除数组中重复json的方法示例
Dec 21 Javascript
vue地区选择组件教程详解
May 04 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
Jun 14 Javascript
Node.js的进程管理的深入理解
Jan 09 Javascript
使用p5.js临摹动态图片
Nov 04 Javascript
详解js location.href和window.open的几种用法和区别
Dec 02 Javascript
5分钟快速看懂ES6中的反射与代理
Dec 19 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
Oct 24 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
分享下页面关键字抓取components.arrow.com站点代码
2014/01/30 PHP
destoon实现资讯信息前面调用它所属分类的方法
2014/07/15 PHP
php的闭包(Closure)匿名函数详解
2015/02/22 PHP
php基于curl主动推送最新内容给百度收录的方法
2016/10/14 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
符合标准的js表单提交的代码
2007/09/13 Javascript
JavaScript中的this实例分析
2011/04/28 Javascript
jQuery阻止同类型事件小结
2013/04/19 Javascript
js加入收藏以及使用Jquery更改透明度
2014/01/26 Javascript
jQuery中复合属性选择器用法实例
2014/12/31 Javascript
jQuery找出网页上最高元素的方法
2015/03/20 Javascript
IScroll5 中文API参数说明和调用方法
2016/05/21 Javascript
实例解析angularjs的filter过滤器
2016/12/14 Javascript
canvas实现图像放大镜
2017/02/06 Javascript
详解Vue 动态添加模板的几种方法
2017/04/25 Javascript
实例讲解javascript实现异步图片上传方法
2017/12/05 Javascript
Bootstrap实现可折叠分组侧边导航菜单
2018/03/07 Javascript
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
这15个Vue指令,让你的项目开发爽到爆
2019/10/11 Javascript
js实现随机点名功能
2020/12/23 Javascript
Python的批量远程管理和部署工具Fabric用法实例
2015/01/23 Python
python使用BeautifulSoup分析网页信息的方法
2015/04/04 Python
Python实现对比不同字体中的同一字符的显示效果
2015/04/23 Python
使用Keras 实现查看model weights .h5 文件的内容
2020/06/09 Python
TripAdvisor土耳其网站:全球知名旅行社区,真实旅客评论
2017/04/17 全球购物
香港时装购物网站:ZALORA香港
2017/04/23 全球购物
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
介绍一下Java的事务处理
2012/12/07 面试题
元旦联欢会主持词
2014/03/26 职场文书
《动手做做看》教学反思
2014/04/09 职场文书
关于运动会广播稿50字
2014/10/18 职场文书
2015年公司后勤管理工作总结
2015/05/13 职场文书
2015年物资管理工作总结
2015/05/20 职场文书
2016年暑期教师培训心得体会
2016/01/09 职场文书
Python3 类型标注支持操作
2021/06/02 Python