基于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 相关文章推荐
JSON 学习之完全手册 图文
May 29 Javascript
走出JavaScript初学困境—js初学
Dec 29 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
Sep 05 Javascript
jQuery自定义添加&quot;$&quot;与解决&quot;$&quot;冲突的方法
Jan 19 Javascript
javascript检查某个元素在数组中的索引值
Mar 30 Javascript
使用 stylelint检查CSS_StyleLint
Apr 28 Javascript
Angular.js实现注册系统的实例详解
Dec 18 Javascript
pm2 部署 node的三种方法示例
Oct 20 Javascript
微信小程序实现两个页面传值的方法分析
Dec 11 Javascript
详解React中合并单元格的正确写法
Jan 08 Javascript
angular 实现同步验证器跨字段验证的方法
Apr 11 Javascript
一篇文章学会Vue中间件管道
Jun 20 Vue.js
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
div li的多行多列 无刷新分页示例代码
2013/10/16 PHP
php使用curl简单抓取远程url的方法
2015/03/13 PHP
PHP模板引擎Smarty中的保留变量用法分析
2016/04/11 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
jquery.cvtooltip.js 基于jquery的气泡提示插件
2010/11/19 Javascript
jquery indexOf使用方法
2013/08/19 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
AngularJS实现表单验证
2015/01/28 Javascript
基于jQuery实现点击弹出层实例代码
2016/01/01 Javascript
用JS实现轮播图效果(二)
2016/06/26 Javascript
jQuery实现点击下拉框中的值累加到文本框中的方法示例
2017/10/28 jQuery
JavaScript事件对象event用法分析
2018/07/27 Javascript
vuejs实现折叠面板展开收缩动画效果
2018/09/06 Javascript
js canvas实现画图、滤镜效果
2018/11/27 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
2020/03/14 Javascript
Jquery ajax书写方法代码实例解析
2020/06/12 jQuery
python处理json数据中的中文
2014/03/06 Python
爬山算法简介和Python实现实例
2014/04/26 Python
Python实现的飞速中文网小说下载脚本
2015/04/23 Python
Python减少循环层次和缩进的技巧分析
2016/03/15 Python
Python基础教程之tcp socket编程详解及简单实例
2017/02/23 Python
python实现字典(dict)和字符串(string)的相互转换方法
2017/03/01 Python
Python文件和流(实例讲解)
2017/09/12 Python
Python OpenCV调用摄像头检测人脸并截图
2020/08/20 Python
Python实现邮件发送的详细设置方法(遇到问题)
2021/01/18 Python
html5绘制时钟动画
2014/12/15 HTML / CSS
大学生求职简历的自我评价
2013/10/14 职场文书
视光学专业毕业生推荐信
2013/10/28 职场文书
主管会计岗位职责
2014/03/13 职场文书
大学新闻系自荐书
2014/05/31 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
群众路线教育实践活动方案
2014/10/31 职场文书
2015年污水处理厂工作总结
2015/05/26 职场文书
python引入其他文件夹下的py文件具体方法
2021/05/23 Python
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA