基于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 相关文章推荐
JS实现打开本地文件或文件夹
Mar 09 Javascript
一个JavaScript继承的实现
Oct 24 Javascript
YUI 读码日记之 YAHOO.util.Dom - Part.1
Mar 22 Javascript
jquery的ajax请求全面了解
Mar 20 Javascript
JQuery分屏指示器图片轮换效果实例
May 21 Javascript
JavaScript和jQuery获取input框的绝对位置实现方法
Oct 13 Javascript
node.js通过axios实现网络请求的方法
Mar 05 Javascript
react的滑动图片验证码组件的示例代码
Feb 27 Javascript
vue-i18n结合Element-ui的配置方法
May 20 Javascript
Quasar Input:type=&quot;number&quot; 去掉上下小箭头 实现加减按钮样式功能
Apr 09 Javascript
在vue中使用jsonp进行跨域请求接口操作
Oct 29 Javascript
关于element的表单组件整理笔记
Feb 05 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
类的另类用法--数据的封装
2006/10/09 PHP
PHP解析RSS的方法
2015/03/05 PHP
PHP面向对象之后期静态绑定功能介绍
2015/05/18 PHP
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
2015/12/07 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
2016/09/09 PHP
Laravel中间件实现原理详解
2016/10/09 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
Javascript 函数对象的多重身份
2009/06/28 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
Script标签与访问HTML页面详解
2014/01/10 Javascript
jQuery仿淘宝网产品品牌隐藏与显示效果
2015/09/01 Javascript
AngularJS基础 ng-switch 指令简单示例
2016/08/03 Javascript
分享JS代码实现鼠标放在输入框上输入框和图片同时更换样式
2016/09/01 Javascript
Bootstrap路径导航与分页学习使用
2017/02/08 Javascript
微信小程序 仿美团分类菜单 swiper分类菜单
2017/04/12 Javascript
vue.js使用watch监听路由变化的方法
2018/07/08 Javascript
Vue 实现展开折叠效果的示例代码
2018/08/27 Javascript
JS插件amCharts实现绘制柱形图默认显示数值功能示例
2019/11/26 Javascript
理解JavaScript中的对象
2020/08/25 Javascript
Vue 组件注册全解析
2020/12/17 Vue.js
零基础写python爬虫之使用urllib2组件抓取网页内容
2014/11/04 Python
Python的pycurl包用法简介
2015/11/13 Python
Python实现删除时保留特定文件夹和文件的示例
2018/04/27 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
Python3 列表,数组,矩阵的相互转换的方法示例
2019/08/05 Python
在pandas中遍历DataFrame行的实现方法
2019/10/23 Python
python对象转字典的两种实现方式示例
2019/11/07 Python
python 通过邮件控制实现远程控制电脑操作
2020/03/16 Python
使用Python三角函数公式计算三角形的夹角案例
2020/04/15 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
HTML5去掉输入框type为number时的上下箭头的实现方法
2020/01/03 HTML / CSS
澳大利亚珠宝商:Shiels
2019/10/06 全球购物
安全月宣传标语
2014/10/07 职场文书
先进典型事迹材料
2014/12/29 职场文书
指导老师鉴定意见
2015/06/05 职场文书