基于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的前台操作和后台操作实现代码
Jan 20 Javascript
浅谈Javascript数组索引
Jul 29 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
Dec 29 Javascript
js+canvas绘制矩形的方法
Jan 28 Javascript
AngularJS入门教程之Scope(作用域)
Jul 27 Javascript
详谈js模块化规范
Jul 07 Javascript
AngularJS service之select下拉菜单效果
Jul 28 Javascript
浅谈react+es6+webpack的基础配置
Aug 09 Javascript
vue.js在标签属性中插入变量参数的方法
Mar 06 Javascript
Vue2.0实现调用摄像头进行拍照功能 exif.js实现图片上传功能
Apr 28 Javascript
安装vue-cli的简易过程
May 22 Javascript
vue data恢复初始化数据的实现方法
Oct 31 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
PHP编程实现csv文件导入mysql数据库的方法
2017/04/29 PHP
基础的prototype.js常用函数及其用法
2007/03/10 Javascript
javascript onkeydown,onkeyup,onkeypress,onclick,ondblclick
2009/02/04 Javascript
基于jquery的滑动样例代码
2010/11/20 Javascript
防止文件缓存的js代码
2013/01/10 Javascript
javascript判断机器是否联网的2种方法
2013/08/09 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
jQuery实现流动虚线框的方法
2015/01/29 Javascript
理解Javascript的call、apply
2015/12/16 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
2016/01/07 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
网页中的图片查看器viewjs使用方法
2017/07/11 Javascript
js实现鼠标拖拽多选功能示例
2017/08/01 Javascript
js实现轮播图的完整代码
2020/10/26 Javascript
JS实现倒序输出的几种常用方法示例
2019/04/13 Javascript
原生js实现的金山打字小游戏(实例代码详解)
2020/03/16 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
Vue+Bootstrap实现简易学生管理系统
2021/02/09 Vue.js
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
Python实现针对给定单链表删除指定节点的方法
2018/04/12 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
python线程池如何使用
2020/05/28 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
2020/06/12 Python
python中remove函数的踩坑记录
2021/01/04 Python
python实现PolynomialFeatures多项式的方法
2021/01/06 Python
AmazeUI折叠式卡片布局,整合内容列表、表格组件实现
2020/08/20 HTML / CSS
Reformation官网:美国女装品牌
2018/09/14 全球购物
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
高性能钓鱼服装:Huk Gear
2019/02/20 全球购物
英国最大的滑板品牌选择:Route One
2019/09/22 全球购物
2014年销售人员工作总结
2014/11/27 职场文书
优秀教师事迹材料
2014/12/15 职场文书
计算机考试作弊检讨书1000字
2015/01/01 职场文书
永远是春天观后感
2015/06/12 职场文书
python tkinter Entry控件的焦点移动操作
2021/05/22 Python
详解CSS不受控制的position fixed
2021/05/25 HTML / CSS