基于jQuery实现的QQ表情插件


Posted in Javascript onAugust 25, 2015

不废话了,先给大家展示效果图:

基于jQuery实现的QQ表情插件

查看演示 下载源码

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

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代码:

<div id="show"></div> 
<div class="comment"> 
 <div class="com_form"> 
  <textarea class="input" id="saytext" name="saytext"></textarea> 
  <p><span class="emotion">表情</span><input type="button" class="sub_btn" value="提交"></p> 
 </div> 
</div>

页面中有一个输入框,用来输入要发表的内容,还有一个表情按钮,点击此按钮可以调用表情图片,完了就可以点击“提交”按钮发布带表情的内容了。

CSS

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

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

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

jQuery

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

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

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

$(function(){ 
 ... 
 $(".sub_btn").click(function(){ 
  var str = $("#saytext").val(); 
  $("#show").html(replace_em(str)); 
 }); 
}); 
function replace_em(str){ 
 str = str.replace(/\</g,'<;'); 
 str = str.replace(/\>/g,'>;'); 
 str = str.replace(/\n/g,'<;br/>;'); 
 str = str.replace(/\[em_([0-9]*)\]/g,'<img src="face/$1.gif" border="0" />'); 
 return str; 
}

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

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

以上内容就是本文对基于jQuery实现的QQ表情插件的详细介绍,希望大家喜欢。

Javascript 相关文章推荐
javascript iframe中打开文件,并检测iframe存在否
Dec 28 Javascript
用cssText批量修改样式
Aug 29 Javascript
JS 参数传递的实际应用代码分析
Sep 13 Javascript
细说浏览器特性检测(2)-通用事件检测
Nov 05 Javascript
js日期时间补零的小例子
Mar 05 Javascript
JavaScript原生对象之Number对象的属性和方法详解
Mar 13 Javascript
jQuery实现的网格线绘制方法
Jun 20 Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
Sep 02 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
Jul 18 jQuery
AngularJs 禁止模板缓存的方法
Nov 28 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
Jan 11 Javascript
Angular2整合其他插件的方法
Jan 20 Javascript
js中javascript:void(0) 真正含义
Nov 05 #Javascript
js实现三张图(文)片一起切换的banner焦点图
Aug 25 #Javascript
js焦点文字滚动效果代码分享
Aug 25 #Javascript
JS实现灵巧的下拉导航效果代码
Aug 25 #Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
Aug 25 #Javascript
jQuery实现类似标签风格的导航菜单效果代码
Aug 25 #Javascript
jQuery下拉美化搜索表单效果代码分享
Aug 25 #Javascript
You might like
PHP 和 XML: 使用expat函数(一)
2006/10/09 PHP
php skymvc 一款轻量、简单的php
2011/06/28 PHP
php selectradio和checkbox默认选择的实现方法详解
2013/06/29 PHP
JavaScript中的细节分析
2012/06/30 Javascript
js Map List 遍历使用示例
2013/07/10 Javascript
js replace 与replaceall实例用法详解
2013/08/03 Javascript
jquery实现瀑布流效果分享
2014/03/26 Javascript
Jquery对select的增、删、改、查操作
2015/02/06 Javascript
总结AngularJS开发者最常犯的十个错误
2016/08/31 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
JS+HTML+CSS实现轮播效果
2017/11/28 Javascript
微信小程序的部署方法步骤
2018/09/04 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
vue.js实现只能输入数字的输入框
2019/10/19 Javascript
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
[35:39]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第二场 11.22
2020/11/24 DOTA
Python中的map()函数和reduce()函数的用法
2015/04/27 Python
Python中atexit模块的基本使用示例
2015/07/08 Python
在Python 不同级目录之间模块的调用方法
2019/01/19 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
2019/01/29 Python
Python字符串匹配之6种方法的使用详解
2019/04/08 Python
python的slice notation的特殊用法详解
2019/12/27 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
2020/03/05 Python
Python 如何批量更新已安装的库
2020/05/26 Python
一款基于css3麻将筛子3D翻转特效的实例教程
2014/12/31 HTML / CSS
儿科护士实习自我鉴定
2013/10/17 职场文书
优秀应届毕业生自荐信
2013/11/16 职场文书
管理失职检讨书
2014/02/12 职场文书
中共广东省委常委会党的群众路线教育实践活动整改方案
2014/09/23 职场文书
2014年乡镇人大工作总结
2014/11/25 职场文书
骨干教师事迹材料
2014/12/17 职场文书
升学宴家长答谢词
2015/09/29 职场文书
PyTorch的Debug指南
2021/05/07 Python