广

JavaScript

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    一款基于jQuery的QQ表情插件

    2018-04-05 08:32:50 次阅读 稿源:互联网
    零七广告

    我们在QQ聊天或者发表评论、微博时,会有一个允许加入表情的功能,点击表情按钮,会弹出一系列表情小图片,选中某个表情图片即可发表的丰富的含表情的内容。今天和大家分享一款基于jQuery的QQ表情插件,您可以轻松将其应用到你的项目中。

     

    HTML

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

    
     
    1. <script type="text/javascript" src="jquery-1.7.2.min.js"></script>  
    2. <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{width:680pxmargin:20px autoposition:relative}  
    2. .comment h3{height:28pxline-height:28px}  
    3. .com_form{width:100%position:relative}  
    4. .input{width:99%height:60pxborder:1px solid #ccc}  
    5. .com_form p{height:28pxline-height:28pxposition:relative}  
    6. span.emotion{width:42pxheight:20pxbackground:url(icon.gif) no-repeat 2px 2px;   
    7. padding-left:20pxcursor: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{width:680pxmargin:20px auto}  

    我们在domo中还用CSS3设置了提交按钮的样式,其代码在本文中不做解释,您可以下载代码了解下。

    jQuery

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

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

    当选择表情图片后,输入框中会插入一段如[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(//n/g,'<;br/>;');  
    12.     str = str.replace(//[em_([0-9]*)/]/g,'<img src="face/$1.gif" border="0" />');  
    13.     return str;  
    14. }  

    如果您想用PHP代码来正则替换表情图片的话,可以使用以下函数:

    
     
    1. function ubbReplace($str){  
    2.     $str = str_replace(">",'<;',$str);  
    3.     $str = str_replace(">",'>;',$str);  
    4.     $str = str_replace("/n",'>;br/>;',$str);  
    5.     $str = preg_replace("[/[em_([0-9]*)/]]",">img src=/"face/$1.gif/" />",$str);  
    6.     return $str;  
    7. }  

    好了,本文讲解到此。

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告