jquery.qqFace.js仿qq表情插件

2016-3-23下载文件修改更新

/*更新说明

由于jquery 1.9.0 以上版本 jquery去掉了对 $.browser 的支持,采用$.support 来判断浏览器类型。导致之前的很多插件报错

我们采取的思路是使用jquery的继承机制对jquery 1.11.1版本进行扩展 使其支持 $.browser 方法,已达到兼容之前组件的目的.

下载文件中加入了jquery-browser.js,低于jquery 1.9.0版本的用户可以不调用!感谢网友(全?剿)提供。

*/

 

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

使用方法

HTML

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

折叠XML/HTML 代码
  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代码:

折叠XML/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面板效果,请看代码:

折叠CSS 代码
  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表情插件,简单几行就搞定。

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

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

折叠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(/  
  12. /g,'<;br/>;');   
  13.     str = str.replace(/[em_([0-9]*)]/g,'<img src="face/$1.gif" border="0" />');   
  14.     return str;   
  15. }  

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

折叠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=\"/arclist/$1.gif\" />"$str );  
  6.     return $str;  
  7. }  

假如我们要用在帝国cms当中,可以按照上述教程添加,然后最后将php正则替换函数添加到/e/clsss/userfun.php文件中,此文件用于存放自定义函数,然后在需要输出内容的地方引用该函数处理即可。

使用效果:

qqface表情插件测试.jpg

下载地址:

文件类型: .rar qqface.rar (193.97 KB)

 

查看演示
Tags: jquery   插件
cms大学,为帝国cms用户提供动力
Copyright © 2016 CmsDX.com All Rights Reserved.