美文网首页
在web页面显示emoji表情

在web页面显示emoji表情

作者: 寒江水kevin | 来源:发表于2017-07-19 15:47 被阅读2587次

    本文首发在我的个人博客上:http://brownbear.top
    项目地址是:https://github.com/sobrown

    最近在做项目的时候,有这么一个需求。pc端评论页面的时候要能插入表情。并且还要能同步移动端的。心想这是什么鬼需求。起初想到采用百度的
    富文本编辑器ueditor。但是他里面自带的表情无法同步的移动端。
    那怎么让pc上的东西在移动端显示呢。没办法。客户就是上帝啊。客户提的所有需求都要满足。于是就在网上查找了有关资料。想到了采用
    国际通用的emoji表情来作为web平台的输入。
    这是我找的资料,讲的还算详细。但缺少具体实列。
    参考资料

    1.首先我们要把所有的emoji表情给显示出来,好让用户进行选择

    这里是结构,样式的话我就不列举出来了。自行脑补吧

      <div class="text">
        <div id="content-icon" contenteditable="true" class="icon-area"></div>
          <button id="btn" class="btn btn-sm btn-default">:)</button>
          <div class="emoji-cont"></div>
      </div>
    

    2.接下来就是行为层了

    通过按钮触发emoji表情,并把表情内容加载到emoji-cont中。

        //生成emoji 并把emoji表情加载到emoji-cont中进行显示。
        $("#btn").click(function(){
            $(".emoji-cont").html("");
            $(".emoji-cont").stop().toggle();
            renderEmoji();
            $(".emoji-icon").each(function(k,v){
            $(v).click(function(){
                    var code=$(this).attr("unicode16");
                    console.log(parse(code));
                    $("#content-icon").append(parse("&#"+parseInt(code,16)+";"));
                });
            });
        });
    
        function renderEmoji(){
            var emos = getEmojiList()[0];
            var html = '<ul class="clearfix">';
                for (var j= 0; j<emos.length; j++){
                    var emo = emos[j];
                    var data = 'data:image/png;base64,' + emo[2];
                    if (j % 20 == 0) {
                        html += '<li class="">';
                    } else {
                        html += '<li>';
                    }
                    html += '<img style="display: inline;vertical-align: middle;" src="' + data + '"  unicode16="' + emo[1] + '"  class="emoji-icon"  /></li>';
                }
            $(".emoji-cont").append(html);
        }
    
      //通过该方法。可以直接把表情在输入框中显示出来。  
      function parse(arg) {  
            if (typeof ioNull !='undefined') {  
                return  ioNull.emoji.parse(arg);      
            }  
            return '';  
        };  
    

    以上这些都必须按依赖加载如下3个js文件

    1.emoji-list-with-image.js 存储emoji编码和表情图片数据,格式如["e415","1f604","iVBORw0KGg..."]

    2.punycode.js 编码解析库

    3.emoji.js 解析emoji编码

    js文件下载

    如果觉得有帮助的话,麻烦右上角轻轻star下哦

    有不足的地方,请各位大神指正!谢谢!

    相关文章

      网友评论

          本文标题:在web页面显示emoji表情

          本文链接:https://www.haomeiwen.com/subject/myblkxtx.html