基于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 相关文章推荐
23个Javascript弹出窗口特效整理
Feb 25 Javascript
一些有用的JavaScript和jQuery的片段分享
Aug 23 Javascript
JS中实现简单Formatter函数示例代码
Aug 19 Javascript
JS实现来回出现文字的状态栏特效代码
Oct 31 Javascript
javascript实现input file上传图片预览效果
Dec 31 Javascript
ClearTimeout消除闪动实例代码
Feb 29 Javascript
javascript 操作cookies详解及实例
Feb 22 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
Jun 22 Javascript
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
Mar 06 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
Aug 17 Javascript
js拖动滑块和点击水波纹效果实例代码
Oct 16 Javascript
vue实现移动端项目多行文本溢出省略
Jul 29 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
造势之举?韩国总统候选人发布《星际争霸》地图
2017/04/22 星际争霸
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
PHP 7.4中使用预加载的方法详解
2019/07/08 PHP
可以文本显示的公告栏的js代码
2007/03/11 Javascript
jQuery EasyUI 开源插件套装 完全替代ExtJS
2010/03/24 Javascript
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
2013/07/09 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
2014/01/06 Javascript
js style动态设置table高度
2014/10/21 Javascript
浅谈JSON中stringify 函数、toJosn函数和parse函数
2015/01/26 Javascript
JavaScript的Date()方法使用详解
2015/06/09 Javascript
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
AngularJS动态加载模块和依赖的方法分析
2016/11/08 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
详解.vue文件中style标签的几个标识符
2018/07/17 Javascript
vue+webpack模拟后台数据的示例代码
2018/07/26 Javascript
对angularJs中$sce服务安全显示html文本的实例
2018/09/30 Javascript
配置一个vue3.0项目的完整步骤
2019/04/26 Javascript
TypeScript开发Node.js程序的方法
2019/04/30 Javascript
layui添加动态菜单与选项卡 AJAX请求的例子
2019/09/25 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
2020/07/14 Javascript
js实现滑动滑块验证登录
2020/07/24 Javascript
python爬虫_实现校园网自动重连脚本的教程
2018/04/22 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
python SVM 线性分类模型的实现
2019/07/19 Python
django admin 自定义替换change页面模板的方法
2019/08/23 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
医学院四年学习生活的自我评价
2013/11/06 职场文书
创建文明学校实施方案
2014/03/11 职场文书
cf收人广告词大全
2014/03/14 职场文书
护士实习求职信
2014/06/22 职场文书
证婚人致辞精选
2015/07/28 职场文书
《我的伯父鲁迅先生》教学反思
2016/02/16 职场文书
Vue3.0中Ref与Reactive的区别示例详析
2021/07/07 Vue.js