基于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 相关文章推荐
破除一些网站复制、右键限制
Nov 04 Javascript
JavaScript使用prototype定义对象类型(转)[
Dec 22 Javascript
jquery查找父元素、子元素(个人经验总结)
Apr 09 Javascript
AngularJS内建服务$location及其功能详解
Jul 01 Javascript
jQuery中show与hide方法用法示例
Sep 16 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
Dec 09 Javascript
JavaScript获取当前时间向前推三个月的方法示例
Feb 04 Javascript
webpack4.x CommonJS模块化浅析
Nov 09 Javascript
JQuery animate动画应用示例
May 14 jQuery
webpack自动打包和热更新的实现方法
Jun 24 Javascript
vue监听浏览器原生返回按钮,进行路由转跳操作
Sep 09 Javascript
JS如何实现基于websocket的多端桥接平台
May 14 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
使用淘宝IP库获取用户ip地理位置
2013/10/27 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
BOOM vs RR BO5 第四场 2.14
2021/03/10 DOTA
ppk谈JavaScript style属性
2008/10/10 Javascript
给ListBox添加双击事件示例代码
2013/12/02 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
JavaScript的常见兼容问题及相关解决方法(chrome/IE/firefox)
2013/12/31 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
jQuery获取checkboxlist的value值的方法
2015/09/27 Javascript
推荐10 个很棒的 jQuery 特效代码
2015/10/04 Javascript
AngularJS基础 ng-dblclick 指令用法
2016/08/01 Javascript
js调用屏幕宽度的简单方法
2016/11/14 Javascript
canvas绘制的直线动画
2017/01/23 Javascript
angularjs路由传值$routeParams详解
2020/09/05 Javascript
Vue使用vux-ui自定义表单验证遇到的问题及解决方法
2018/05/10 Javascript
element el-input directive数字进行控制
2018/10/11 Javascript
使用异步controller与jQuery实现卷帘式分页
2019/06/18 jQuery
解决vue-cli 打包后自定义动画未执行的问题
2019/11/12 Javascript
python re正则表达式模块(Regular Expression)
2014/07/16 Python
python中django框架通过正则搜索页面上email地址的方法
2015/03/21 Python
python字符串与url编码的转换实例
2018/05/10 Python
详解python中list的使用
2019/03/15 Python
使用python 对验证码图片进行降噪处理
2019/12/18 Python
python 的topk算法实例
2020/04/02 Python
python 密码学示例——凯撒密码的实现
2020/09/21 Python
pandas apply使用多列计算生成新的列实现示例
2021/02/24 Python
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
安全标语大全
2014/06/10 职场文书
教育项目合作协议书格式
2014/10/17 职场文书
汶川大地震感悟
2015/08/10 职场文书
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
2021/04/01 PHP
Redis如何一键部署脚本
2021/04/12 Redis
MySQL root密码的重置方法
2021/04/21 MySQL
PyTorch中permute的使用方法
2022/04/26 Python
html中两种获取标签内的值的方法
2022/06/10 HTML / CSS