zoukankan      html  css  js  c++  java
  • 经典qq表情插件(html+nodejs应用)

    由于目前在接触聊天室项目,接到一个需求实现一个类似QQ表情。在网上找了一款jquery经典表情插件。下面介绍一个用法:

    HTML:

      首先在html页面的head中引入jQuery库文件和QQ表情插件jquery.qqFace.js文件

           <script type="text/javascript" src="jquery-1.7.2.min.js"></script> 
       <script type="text/javascript" src="jquery.qqFace.js"></script>
    然后在body中加入以下html代码:

    1   <div id="show"></div> 
    2     <div class="comment"> 
    3     <div class="com_form"> 
    4         <textarea class="input" id="saytext" name="saytext"></textarea> 
    5         <p><span class="emotion">表情</span><input type="button" class="sub_btn" value="提交"></p> 
    6     </div> 
    7   </div> 

    CSS:

    我们用CSS来美化页面,关键是表情按钮图片span.emotion的鼠标滑上与移开效果,以及调用表情插件后,显示的表情.qqFace面板效果,请看代码:

     1 .comment{680px; margin:20px auto; position:relative} 
     2 .comment h3{height:28px; line-height:28px} 
     3 .com_form{100%; position:relative} 
     4 .input{99%; height:60px; border:1px solid #ccc} 
     5 .com_form p{height:28px; line-height:28px; position:relative} 
     6 span.emotion{42px; height:20px; background:url(icon.gif) no-repeat 2px 2px;  
     7 padding-left:20px; cursor:pointer} 
     8 span.emotion:hover{background-position:2px -28px} 
     9 .qqFace{margin-top:4px;background:#fff;padding:2px;border:1px #dfe6f6 solid;} 
    10 .qqFace table td{padding:0px;} 
    11 .qqFace table td img{cursor:pointer;border:1px #fff solid;} 
    12 .qqFace table td img:hover{border:1px #0066cc solid;} 
    13 #show{680px; margin:20px auto} 

    jquery:

    当我们点击页面输入框下方那个笑脸时,触发调用qqface表情插件,简单几行就搞定。

    1 $(function(){ 
    2     $('.emotion').qqFace({ 
    3 
    4         assign:'saytext', //给输入框赋值 
    5         path:'face/'    //表情图片存放的路径 
    6     }); 
    7     ... 
    8 }); 

    当选择表情图片后,输入框中会插入一段如[em_5]之类的代码,代表插入的表情图片,实际应用中,点提交按钮后应该将这段表情代码连同其他内容插入到数据表中。而在页面显示的时候,我们应该将表情代码替换成真正的图片显示在页面上。下面的代码是插入表情图片后,点击提交按钮,使用javascript自定义函数将表情代码替换并显示:

     1 $(function(){ 
     2     ... 
     3     $(".sub_btn").click(function(){ 
     4         var str = $("#saytext").val(); 
     5         $("#show").html(replace_em(str)); 
     6     }); 
     7 }); 
     8 function replace_em(str){ 
     9     str = str.replace(/</g,'<;'); 
    10     str = str.replace(/>/g,'>;'); 
    11     str = str.replace(/
    /g,'<;br/>;'); 
    12     str = str.replace(/[em_([0-9]*)]/g,'<img src="face/$1.gif" border="0" />'); 
    13     return str; 
    14 } 

    下面着重介绍下在nodejs+express4中的应用:

    步骤如下:

    1:加入引用表情的span

    1         <div class="send-out">
    2             <span class="emotion" id="emotion"><img class="head_picture" src="/images/r-middle-pic07.png">表情</span>
    3             <input class="send-text" id="Y_iSend_Input" type="text" maxlength="100" value="">
    4             <input id="Y_iSend_Bt" class="out_text" onclick="CHAT.submit();" type="button"  value="发送"/>
    5         </div>

    2:加入头文件并调用jquery

    1 <script type="text/javascript" src="/js/jquery.qqFace.js"></script>
    2  $(function(){
    3             $('.emotion').qqFace({
    4                 assign:'Y_iSend_Input', //给输入框赋值
    5                 path:'/face/'    //表情图片存放的路径
    6            });
    7     });

    3:用正则替换输入的[]表情

     
    w.CHAT={
    replace_em: function (str) {
                str = str.replace(/</g, '<;');
                str = str.replace(/>/g, '>;');
                str = str.replace(/
    /g, '<;br/>;');
                str = str.replace(/[em_([0-9]*)]/g, '<img src="/face/$1.gif" border="0" />');
                return str;
            },
    
            //提交聊天消息内容
            submit: function () {
    
                var str = $("#Y_iSend_Input").val();
    
                $("#Y_iSend_Input").val(CHAT.replace_em(str));
    
                var message_text = d.getElementById("Y_iSend_Input").value;
      }
    }

    4:显示

    nodejs聊天室,浅析。

     

  • 相关阅读:
    【CodeVS 1028】 花店橱窗布置
    超赞的网络流入门教程
    【BZOJ 1798】[Ahoi2009]Seq 维护序列seq
    【洛谷 1991】 无线通讯网
    【Poj 3469】 Dual Core CPU
    【BZOJ 3504 】[Cqoi2014]危桥
    【Poj 3436】 ACM Computer Factory
    【BZOJ 3990】 [SDOI2015]排序
    【COGS 1873】 [国家集训队2011]happiness(吴确)
    最小割PPt
  • 原文地址:https://www.cnblogs.com/jacksundatashare/p/5486233.html
Copyright © 2011-2022 走看看