基于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 异步调用框架 (Part 2 - 用例设计)
Aug 03 Javascript
如何获取select下拉框的值(option没有及有value属性)
Nov 08 Javascript
javascript的渐进增强与平稳退化浅谈
Nov 12 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
Jun 30 Javascript
jQuery构造函数init参数分析
May 13 Javascript
jQuery实现的经典竖向伸缩菜单效果代码
Sep 24 Javascript
举例讲解JavaScript substring()的使用方法
Nov 09 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
Jun 21 Javascript
javascript实现鼠标点击页面 移动DIV
Dec 02 Javascript
JS实现动态修改table及合并单元格的方法示例
Feb 20 Javascript
vue移动端UI框架实现QQ侧边菜单组件
Mar 09 Javascript
JS实现获取数组中最大值或最小值功能示例
Mar 02 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
dedecms采集中可以过滤多行代码的正则表达式
2007/03/17 PHP
Yii2.0 模态弹出框+ajax提交表单
2016/05/22 PHP
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
Yii中CGridView禁止列排序的设置方法
2016/07/12 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
自己的js工具_Form 封装
2009/08/21 Javascript
用jquery与css打造个性化的单选框和复选框
2010/10/20 Javascript
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
JavaScript eval() 函数介绍及应用示例
2014/07/29 Javascript
JS获取iframe中longdesc属性的方法
2015/04/01 Javascript
AngularJS 单元测试(二)详解
2016/09/21 Javascript
javascript ASCII和Hex互转的实现方法
2016/12/27 Javascript
Angular.js中angular-ui-router的简单实践
2017/07/18 Javascript
原生JS实现Ajax跨域请求flask响应内容
2017/10/24 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
2017/12/20 Javascript
JavaScript常用数学函数用法示例
2018/05/14 Javascript
移动端图片上传旋转、压缩问题的方法
2018/10/16 Javascript
如何从零开始手写Koa2框架
2019/03/22 Javascript
Vue.js路由实现选项卡简单实例
2019/07/24 Javascript
vue递归组件实战之简单树形控件实例代码
2019/08/27 Javascript
Python基础教程之tcp socket编程详解及简单实例
2017/02/23 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
使用TensorFlow实现SVM
2018/09/06 Python
结合OpenCV与TensorFlow进行人脸识别的实现
2019/10/10 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
德国消费电子产品购物网站:Guter Kauf
2020/09/15 全球购物
如何查询Oracle数据库中已经创建的索引
2013/10/11 面试题
人事主管的岗位职责
2013/11/16 职场文书
优秀团队申报材料
2014/12/26 职场文书
2015年科室工作总结
2015/04/10 职场文书
法律意见书范本
2015/06/04 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
详解Mysql数据库平滑扩容解决高并发和大数据量问题
2022/05/25 MySQL
关于Redis的主从复制及哨兵问题
2022/06/16 Redis