前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Emoji表情还能这样玩?

Emoji表情还能这样玩?

作者头像
程序员老鱼
发布2022-12-02 10:06:33
1.5K0
发布2022-12-02 10:06:33
举报
文章被收录于专栏:前端实验室

大家好,我是前端实验室的大师兄!一名资深的互联网玩家,专注分享大前端领域技术、面试宝典、学习资料等~

今天要给大家分享的是网页交互中最常用的功能:表情包

前言

纯粹的文字有时显得那么苍白无力,一个表情反而更胜千言万语。

小伙伴们接到的评论功能,往往都需要带上表情包。

今天大师兄给大家分享个贼好用的表情包插件: jQuery-emoji

功能

  • 支持给textarea可编辑div加上表情功能,自动识别元素类型。
    • 如果是textarea,则选择表情后插入表情代码.

    (大家可能会疑惑:这个表情代码有什么用?接着往下看就知道啦)

    • 如果是可编辑div,则直接插入表情图片。

    使用可编辑的div在输入时就方便很多了:选的什么,输入的就是什么。

唯一需要注意的就是这个表情弹窗的触发按钮不是表情(图中红框所示)。这是因为在表情包没有初始化前,表情是显示不出来的。这里需要个图片来代替下~

  • 支持自定义表情代码的格式。

这套插件中,表情包都是通过别名对应图片来显示的。显示的图片放在/dist/img/目录下(也可以自己在配置中设置目录)。因此,完全可以添加自己设定的表情包哦。

代码语言:javascript
复制
$("#editor").emoji({
    button: "#btn",
    showTab: false,
    animation: 'slide',
    icons: [{
        name: "QQ表情",
        path: "dist/img/qq/",
        maxNum: 91,
        excludeNums: [41, 45, 54],
        file: ".gif"
    }]
});

上面的示例中path定义了路径,file定义了格式

  • 支持将表情代码转换为表情图片。

还记得之前的textarea中添加表情时的疑惑吗?

只显示表情代码,怎么办?emojiParse方法来帮忙。

代码语言:javascript
复制
 $("#sourceText").emojiParse(...);

为什么要提供再解析一次的方法呢?这主要是为了处理存储返回的表情数据。

存储返回的数据必然只是这个表情的代码。你需要把这个代码解析为表情。

  • 示例已带有百度贴吧和qq高清2套表情。支持多组表情并提供tab切换。

表情包的tab版面也是可以配置的。

代码语言:javascript
复制
$("#content").emoji({
    showTab: true,
    animation: 'fade',
    icons: [{
        name: "贴吧表情",
        path: "dist/img/tieba/",
        maxNum: 50,
        file: ".jpg",
        placeholder: ":{alias}:",
        ...
        },
        , {
        path: "dist/img/qq/",
        maxNum: 91,
        excludeNums: [41, 45, 54],
        file: ".gif",
        placeholder: "#qq_{alias}#"
    }]
    });

多套版面就是这里的icons数组来实现的

使用

引用

首先下载依赖包(也可直接在文章末尾处获取资源)

代码语言:javascript
复制
npm install --save jQuery-emoji

之后在页面上引用css文件和js文件,css文件一般在<head>中添加,js文件一般在</body>之前添加。

注意要先引用jquery和jquery.mCustomScrollbar,再引用该js。因为该插件是需要jquery支持的。

代码语言:javascript
复制
<head>
    <link rel="stylesheet" href="lib/css/jquery.mCustomScrollbar.min.css"/>

    <link rel="stylesheet" href="css/jquery.emoji.css"/>
    
</head>
<body>
  <textarea class="form-control" id="content" rows="3"></textarea>
  <div>或者</div>
  <div id="editor" contenteditable="true"></div>

<script src="https://cdn.bootcss.com/jquery/1.11.3/jquery.js"></script>

<script src="lib/script/jquery.mousewheel-3.0.6.min.js"></script>

<script src="lib/script/jquery.mCustomScrollbar.min.js"></script>

<script src="js/jquery.emoji.js"></script>
</body>
调用

在文本框或可编辑div上初始化emoji

代码语言:javascript
复制
$("#content").emoji(options);
参数

参数都比较简单,如下图

方法

前面的介绍中也使用到了一些方法,这里再总结下。

初始化表情:emoji(options)

代码语言:javascript
复制
$("#editor").emoji({
    icons: [{
        name: "QQ表情",
        path: "img/qq/",
        maxNum: 91,
        excludeNums: [41, 45, 54],
        file: ".gif",
        placeholder: "#qq_{alias}#"
    }]
});

显示表情面板:emoji('show')

代码语言:javascript
复制
$("#editor").emoji('show');

隐藏表情面板:emoji('hide')

代码语言:javascript
复制
$("#editor").emoji('hide');

切换显示隐藏表情面板:emoji('toggle')

代码语言:javascript
复制
$("#editor").emoji('toggle');

API都非常简单。大家赶紧来试试吧!

下方公众号后台回复20220118获取jQuery-emoji资源。

写在最后

欢迎加入前端实验室读者交流群,群里有不少技术大神,不定时会分享一些技术要点,更有一些资源收藏爱好者会分享一些优质的学习资料。吃瓜、摸鱼、白嫖技术就等你了~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 功能
  • 使用
    • 引用
      • 调用
        • 参数
          • 方法
          • 写在最后
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档