前端实现自定义表情【微信表情】

news/2024/11/29 20:36:35/

你也许会发现微信表情和输入法自带的emoji并不完全一样。正如市面上很多app,大多数有自定义的表情库。那前端是如何实现的呢?先来看看我做好的仿微信的演示:

成果展示
成果展示

分析

我们先来看一看自定义表情的特点:

  • 像一个图片icon
  • 能和文字一起排版

自定义表情的显示模型:

模型解剖

按照以上模型,我们可以给表情位定义一个<img />,但前端组件input框并不支持非字符的输入又该怎么办呢?

给每个表情定义一个key值(字符名称),发送消息后再转换成相应的value值(img标签)

细心的朋友,特别是使用Iphone的朋友(原生安卓不适用),当你们点击要输入的表情时输入框并没有立即显示出表情,而是显示的key值,如:[鼓掌]。消息发出后才变成相应的value值。

减少资源加载

OK,以上就是实现自定义表情的全部理论,看起来并不复杂。但表情图片一个一个加载太占资源了,特别是微信动不动就是100多个表情,怎么办呢?我们能不能把表情拼凑成一个文件加载呢?可以!

把表情做在一张png图上,然后用img的clip-path属性定位特定区域。

代码实现

实现细节放在了github上,封装成了Vue插件,熟悉Vue的小伙伴可以直接使用,欢迎各位留言交流哦~


http://www.ppmy.cn/news/820517.html

相关文章

MYSQL的字符串支持保存表情,比如微信表情

这种编码是会保存出错的&#xff0c;咱们需要修改一下&#xff0c;如下&#xff1a; 修改后可以保存相关表情符号

java ipone 微信昵称emoji表情保存失败 无法存入数据库

问题描述&#xff1a;ipone5s中昵称输入“emoji 表情”&#xff0c;保存数据库有问题。 运行环境&#xff1a;Java、Tomcat、mysql、Linux(我的Linux下为乱码&#xff0c;这个是linux问题) 原因&#xff1a;IOS 5.x及以上版本的emoji 表情都是4字节的&#xff0c;mysql里的utf…

我是如何获得微信内置表情的

View Post on Blog 授人以鱼&#xff0c;不如授人以渔。虽然百度出来有很多下载资源&#xff0c;但并没有讲怎么获得的&#xff08;毕竟天朝特色&#xff09; 在 GitHub 上直接搜微信表情&#xff0c;搜出来的多是 https://res.wx.qq.com/mpres/htmledition/images/icon/emotio…

【微信机器人】实现保存微信表情包到相册

前言 可能是为了留住用户&#xff0c;微信表情包不能保存到相册&#xff0c;但是这个做法很不爽&#xff0c;特别是想转移表情包的时候。所以在下做了一个表情包机器人&#xff0c;它可以将表情包转为图片链接。 效果展示 实现原理 机器人框架 本来想用wechaty协议写一个机…

2022年微信表情怎么保存到手机相册呢

前言 感谢 网友 提供的办法&#xff0c;简单有效&#xff01;亲测可用&#xff01;下面分享给大家。 前几天在使用微信时遇到过这样的问题——好不容易看到了一个非常好玩的表情包&#xff0c;想把它保存到手机里&#xff0c;但是任凭怎么找就是找不到保存按钮&#xff1f; 因为…

将微信里的表情保存到手机相册

大家都遇到过微信里面的表情包保存不到手机相册的问题吧&#xff0c;今天就来给大家分享个黑科技&#xff0c;能把微信表情保存到手机相册&#xff0c;然后可以在QQ里面&#xff0c;电脑里面使用。 目前是最新&#xff0c;最简单&#xff0c;最有效的方法。按照下面步骤来。 1…

微信如何保存表情包到手机相册

01 关注下面 03 打开表情保存提取发送的《点击下载》&#xff0c;然后点击【保存到相册】按钮就能保存到手机啦&#xff01;

Anaconda删除虚拟环境

# 查看环境&#xff0c;确定待删除环境位置 conda env list# 按照位置进行删除 conda env remove -p 要删除的虚拟环境路径举例&#xff1a; 删除py37执行如下命令&#xff1a; conda env remove -p D:\A\envs\py37