基于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 相关文章推荐
兼容IE和Firefox的javascript获取iframe文档内容的函数
Aug 15 Javascript
自定义jQuery选项卡插件实例
Mar 27 Javascript
javascript删除字符串最后一个字符
Jan 14 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
May 12 Javascript
JavaScript核心语法总结(推荐)
Jun 02 Javascript
javascript验证内容为数字以及长度为10的简单实例
Aug 20 Javascript
Vue.js仿微信聊天窗口展示组件功能
Aug 11 Javascript
JS模拟实现哈希表及应用详解
May 04 Javascript
如何安装控制器JavaScript生成插件详解
Oct 21 Javascript
使用express来代理服务的方法
Jun 21 Javascript
你可能从未使用过的11+个JavaScript特性(小结)
Jan 08 Javascript
Vue全局事件总线你了解吗
Feb 24 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
长波知识介绍
2021/03/01 无线电
Optimizer与Debugger兼容性问题的解决方法
2008/12/01 PHP
PHP中的Streams详细介绍
2014/11/12 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
js substr、substring和slice使用说明小记
2011/09/15 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
javascript实现列表切换效果
2016/05/02 Javascript
JS遍历页面所有对象属性及实现方法
2016/08/01 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
2016/09/28 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
Javascript格式化并高亮xml字符串的方法及注意事项
2018/08/13 Javascript
javascript数组的定义及操作实例
2019/11/10 Javascript
nodejs开发一个最简单的web服务器实例讲解
2020/01/02 NodeJs
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
微信小程序实现文件预览
2020/10/22 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
使用python提取html文件中的特定数据的实现代码
2013/03/24 Python
在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
2015/04/09 Python
urllib和BeautifulSoup爬取维基百科的词条简单实例
2018/01/17 Python
python re模块的高级用法详解
2018/06/06 Python
使用celery执行Django串行异步任务的方法步骤
2019/06/06 Python
使用Python快乐学数学Github万星神器Manim简介
2019/08/07 Python
python实现数据清洗(缺失值与异常值处理)
2019/12/02 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
Python如何给你的程序做性能测试
2020/07/29 Python
Python二元算术运算常用方法解析
2020/09/15 Python
PyQt5中QSpinBox计数器的实现
2021/01/18 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
会计实习自我鉴定
2013/12/04 职场文书
《桃花心木》教学反思
2014/02/17 职场文书
个人充满哲理的自我评价
2014/02/20 职场文书
国际贸易实务实训报告
2014/11/05 职场文书
2014年城市管理工作总结
2014/12/02 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
详解Java分布式事务的 6 种解决方案
2021/06/26 Java/Android