基于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 相关文章推荐
jquery通过visible来判断标签是否显示或隐藏
May 08 Javascript
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
Jun 06 Javascript
借助JavaScript脚本判断浏览器Flash Player信息的方法
Jul 09 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
Aug 24 Javascript
javascript实现uploadify上传格式以及个数限制
Nov 23 Javascript
EditPlus 正则表达式 实战(3)
Dec 15 Javascript
基于hover的用法实例(推荐)
Jul 04 Javascript
vue.js 嵌套循环、if判断、动态删除的实例
Mar 07 Javascript
vue底部加载更多的实例代码
Jun 29 Javascript
详解JavaScript添加给定的标签选项
Sep 17 Javascript
vue+django实现一对一聊天功能的实例代码
Jul 17 Javascript
element-ui tree结构实现增删改自定义功能代码
Aug 31 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支持多种格式图片上传(支持jpg、png、gif)
2011/11/03 PHP
微信营销平台系统?刮刮乐的开发
2014/06/10 PHP
PHP Reflection API详解
2015/05/12 PHP
PHP编写简单的App接口
2016/08/28 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
JS获取农历日期具体实例
2013/11/14 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
简单实现限制uploadify上传个数
2015/11/16 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
详解webpack require.ensure与require AMD的区别
2017/12/13 Javascript
Vue中使用vue-i18插件实现多语言切换功能
2018/04/25 Javascript
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
[57:29]Alliance vs KG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/17 DOTA
Python2.7读取PDF文件的方法示例
2017/07/13 Python
Python中装饰器高级用法详解
2017/12/25 Python
pandas 小数位数 精度的处理方法
2018/06/09 Python
python Django 创建应用过程图示详解
2019/07/29 Python
python正则爬取某段子网站前20页段子(request库)过程解析
2019/08/10 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
在Python中预先初始化列表内容和长度的实现
2019/11/28 Python
Python实现微信好友的数据分析
2019/12/16 Python
python产生模拟数据faker库的使用详解
2020/11/04 Python
如何用用Python将地址标记在地图上
2021/02/07 Python
最新的小工具和卓越的产品设计:Oh That Tech!
2019/08/07 全球购物
空字符串(“”)和null的区别
2012/11/13 面试题
餐厅执行经理岗位职责范本
2014/02/26 职场文书
我的小天地教学反思
2014/04/30 职场文书
作风转变心得体会
2014/09/02 职场文书
2014领导班子四风剖析对照检查材料思想汇报
2014/09/20 职场文书
保证金退回承诺函格式
2015/01/21 职场文书
党校个人总结
2015/03/04 职场文书
导游词之嵊泗列岛
2019/10/30 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL
浅谈MySQL函数
2021/10/05 MySQL
JAVA API 实用类 String详解
2021/10/05 Java/Android