基于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 相关文章推荐
arguments对象
Nov 20 Javascript
JavaScript的各种常见函数定义方法
Sep 16 Javascript
jQuery实现表格行上移下移和置顶的方法
May 22 Javascript
javascript基于prototype实现类似OOP继承的方法
Dec 16 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
May 09 Javascript
基于JavaScript代码实现自动生成表格
Jun 15 Javascript
纯JS打造网页中checkbox和radio的美化效果
Oct 13 Javascript
利用jQuery对无序列表排序的简单方法
Oct 16 Javascript
node.js版本管理工具n无效的原理和解决方法
Nov 24 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
Jul 12 jQuery
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
Jan 30 Javascript
js键盘事件实现人物的行走
Jan 17 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保存信息到当前Session的方法
2015/03/16 PHP
PHP保存session到memcache服务器的方法
2016/01/19 PHP
PHP 绘制网站登录首页图片验证码
2016/04/12 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
javascript两段代码,两个小技巧
2010/02/04 Javascript
Javascript string 扩展库代码
2010/04/09 Javascript
JavaScript创建类/对象的几种方式概述及实例
2013/05/06 Javascript
jquery 简单应用示例总结
2013/08/09 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
2014/12/01 Javascript
jquery中filter方法用法实例分析
2015/02/06 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
Angularjs---项目搭建图文教程
2016/07/08 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
2016/11/29 Javascript
js仿微信语音播放实现思路
2016/12/12 Javascript
详解RequireJS按需加载样式文件
2017/04/12 Javascript
详解Javascript中new()到底做了些什么?
2018/03/29 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
vue父组件异步获取数据传给子组件的方法
2018/07/26 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
2018/08/22 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
koa-passport实现本地验证的方法示例
2020/02/20 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
使用python实现扫描端口示例
2014/03/29 Python
用Python将IP地址在整型和字符串之间轻松转换
2017/03/22 Python
用不到50行的Python代码构建最小的区块链
2017/11/16 Python
详解python和matlab的优势与区别
2019/06/28 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
2020/02/03 Python
Python实现Excel自动分组合并单元格
2021/02/22 Python
百思买加拿大:Best Buy Canada
2018/03/20 全球购物
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
初中美术教学反思
2014/01/29 职场文书
2015商场元旦促销活动策划方案
2014/12/09 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
Django操作cookie的实现
2021/05/26 Python
Shell中的单中括号和双中括号的用法详解
2022/12/24 Servers