基于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 多浏览器 事件大全
Mar 23 Javascript
5个最佳的Javascript日期处理类库分享
Apr 15 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
May 13 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
Sep 17 Javascript
js实现鼠标经过表格行变色的方法
May 12 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
Aug 03 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
Apr 14 Javascript
angular框架实现全选与单选chekbox的自定义
Jul 06 Javascript
JS实现的ajax和同源策略(实例讲解)
Dec 01 Javascript
详解关闭令人抓狂的ESlint 语法检测配置方法
Oct 28 Javascript
vue实现选中效果
Oct 07 Javascript
vue中this.$http.post()跨域和请求参数丢失的解决
Apr 08 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
php过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
php传值方式和ajax的验证功能
2017/03/27 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
PHP实现唤起微信支付功能
2019/02/18 PHP
关于Laravel-admin的基础用法总结和自定义model详解
2019/10/08 PHP
firefox下对ajax的onreadystatechange的支持情况分析
2009/12/14 Javascript
自己动手开发jQuery插件教程
2011/08/25 Javascript
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
JavaScript var声明变量背后的原理示例解析
2013/10/12 Javascript
jQuery瀑布流插件Wookmark使用实例
2014/04/02 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
基于bootstrap实现收缩导航条
2017/03/17 Javascript
jQuery 导航自动跟随滚动的实现代码
2018/05/30 jQuery
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
jQuery 函数实例分析【函数声明、函数表达式、匿名函数等】
2020/05/19 jQuery
[01:03:41]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第一场 12.17
2020/12/19 DOTA
Python字符串格式化的方法(两种)
2017/09/19 Python
Python3 jupyter notebook 服务器搭建过程
2018/11/30 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
python系列 文件操作的代码
2019/10/06 Python
解决python 读取excel时 日期变成数字并加.0的问题
2019/10/08 Python
分享一个python的aes加密代码
2020/12/22 Python
python实现发送QQ邮件(可加附件)
2020/12/23 Python
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
LightInTheBox西班牙站点:全球商品在线采购
2016/09/22 全球购物
银行自荐信范文
2013/10/07 职场文书
教育实习生的自我评价分享
2013/11/21 职场文书
程序员求职信
2014/04/16 职场文书
公司演讲稿开场白
2014/08/25 职场文书
营销与策划实训报告
2014/11/05 职场文书
小学班主任个人总结
2015/03/03 职场文书
2015年小学校长工作总结
2015/05/19 职场文书
Mysql排序的特性详情
2021/11/01 MySQL
python处理json数据文件
2022/04/11 Python
WinServer2012搭建DNS服务器的方法步骤
2022/06/10 Servers