基于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 相关文章推荐
利用javascript移动div层-javascript 拖动层
Mar 22 Javascript
PPK 谈 JavaScript 的 this 关键字 [翻译]
Sep 29 Javascript
jQuery :nth-child前有无空格的区别分析
Jul 11 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
Dec 08 Javascript
使用Node.js为其他程序编写扩展的基本方法
Jun 23 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
Jan 04 Javascript
js中最容易被忽视的事件问题大总结
May 15 Javascript
JS回调函数简单用法示例
Feb 09 Javascript
angularJS开发注意事项
May 26 Javascript
Angularjs中date过滤器失效的问题及解决方法
Jul 06 Javascript
Vue管理系统前端之组件拆分封装详解
Aug 23 Javascript
原生JavaScript实现换肤
Feb 19 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
第二节--PHP5 的对象模型
2006/11/16 PHP
10条PHP编程习惯助你找工作
2008/09/29 PHP
php smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
php查询内存信息操作示例
2019/05/09 PHP
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
js实现右键自定义菜单
2016/12/03 Javascript
vue中$refs的用法及作用详解
2018/04/24 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
vue组件 keep-alive 和 transition 使用详解
2019/10/11 Javascript
Nuxt v-bind绑定img src不显示的解决
2019/12/05 Javascript
js实现div色块拖动录制
2020/01/16 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
VUE动态生成word的实现
2020/07/26 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
2020/10/18 Javascript
解决vue-cli输入命令vue ui没效果的问题
2020/11/17 Javascript
django中模板的html自动转意方法
2018/05/27 Python
Python 判断奇数偶数的方法
2018/12/20 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
2019/01/29 Python
详解Python 解压缩文件
2019/04/09 Python
Python tkinter实现图片标注功能(完整代码)
2019/12/08 Python
python 读取二进制 显示图片案例
2020/04/24 Python
Python捕获异常堆栈信息的几种方法(小结)
2020/05/18 Python
基于OpenCV的网络实时视频流传输的实现
2020/11/15 Python
捷克时尚网上商店:OTTO
2018/03/15 全球购物
班组长安全生产职责
2013/12/16 职场文书
教师个人鉴定材料
2014/02/08 职场文书
庆元旦迎新年广播稿
2014/02/18 职场文书
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
就业协议书范本
2014/10/08 职场文书
项目验收申请报告
2015/05/15 职场文书
什么是SOLID
2022/03/24 Javascript