jquery实现漂浮在网页右侧的qq在线客服插件示例


Posted in Javascript onMay 13, 2013

很实用的一款QQ在线客服代码,点击QQ图标,可直接与客服对话。具体实现代码如下:
html页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>jquery实现qq客服</title> 
<link rel="stylesheet" type="text/css" href="css/base.css"/> 
<script type="text/javascript" src="js/jquery-1.8.3.min.js"></script> 
<script type="text/javascript" src="js/qqservice.js"></script> 
<script type="text/javascript"> 
$(function(){ 
$("body").Sonline({ 
Position:"right",//left或right 
Top:200,//顶部距离,默认200px 
Effect:true, //滚动或者固定两种方式,布尔值:true或false 
DefaultsOpen:true, //默认展开:true,默认收缩:false 
Qqlist:"<SPAN>435027|客服01,435027|客服02,435027|客服03,435027|客服04,435027|客服05</SPAN>" //多个QQ用','隔开,QQ和客服名用'|'隔开 
}); 
}) 
</script> 
</head> 
<body> 
<div style="height:2500px"></div> 
<div style="text-align:center;clear:both"></div> 
</body> 
</html>

css样式
/*默认蓝色*/ 
.SonlineBox{ width:162px; font-size:12px;overflow:hidden; z-index:9999;} 
.SonlineBox .openTrigger{ width:30px; height:110px; position:absolute; top:0px; z-index:1; cursor:pointer; background:#0176ba url(../images/openTrigger.jpg) no-repeat;} 
.SonlineBox .titleBox{ width:158px; height:35px; line-height:35px; background:#038bdc url(../images/SonlineTitleBg.gif) repeat-x; border-bottom:2px solid #0176ba;} 
.SonlineBox .titleBox span{ margin-left:10px; color:#fff; font-size:14px; font-family:'微软雅黑','黑体';} 
.SonlineBox .contentBox{ width:158px; height:auto; border:2px solid #0176ba; background:#fff; position:absolute; z-index:2;} 
.SonlineBox .contentBox .closeTrigger{ width:25px; height:25px; display:block; cursor:pointer; position:absolute; top:5px;right:5px;-webkit-transition:all 0.8s ease-out;} 
.SonlineBox .contentBox .closeTrigger:hover{-webkit-transform:scale(1) rotate(360deg);} 
.SonlineBox .contentBox .listBox{overflow:hidden; margin-bottom:10px;} 
.SonlineBox .contentBox .listBox .QQList{ display:block; width:86%; height:22px; margin:10px auto 0px auto;} 
.SonlineBox .contentBox .listBox .QQList span{float:left; line-height:22px;} 
.SonlineBox .contentBox .listBox .QQList a{float:left;}

jquery脚本代码
/* 
此插件基于Jquery 
开发者 yaohucaizi 
Blog:http://blog.csdn.net/yaohucaizi/ 
*/ 
(function($){ 
$.fn.Sonline = function(options){ 
var opts = $.extend({}, $.fn.Sonline.defualts, options); 
$.fn.setList(opts); //调用列表设置 
if(opts.DefaultsOpen == false){ 
$.fn.Sonline.close(opts.Position,0); 
} 
//展开 
$("#SonlineBox > .openTrigger").live("click",function(){$.fn.Sonline.open(opts.Position);}); 
//关闭 
$("#SonlineBox > .contentBox > .closeTrigger").live("click",function(){$.fn.Sonline.close(opts.Position,"fast");}); //Ie6兼容或滚动方式显示 
if ($.browser.msie && ($.browser.version == "6.0") && !$.support.style||opts.Effect==true) {$.fn.Sonline.scrollType();} 
else if(opts.Effect==false){$("#SonlineBox").css({position:"fixed"});} 
} 
//plugin defaults 
$.fn.Sonline.defualts ={ 
Position:"left",//left或right 
Top:200,//顶部距离,默认200px 
Effect:true, //滚动或者固定两种方式,布尔值:true或 
DefaultsOpen:true, //默认展开:true,默认收缩:false 
Qqlist:"" //多个QQ用','隔开,QQ和客服名用'|'隔开 
} 
//展开 
$.fn.Sonline.open = function(positionType){ 
var widthValue = $("#SonlineBox > .contentBox").width(); 
if(positionType=="left"){$("#SonlineBox > .contentBox").animate({left: 0},"fast");} 
else if(positionType=="right"){$("#SonlineBox > .contentBox").animate({right: 0},"fast");} 
$("#SonlineBox").css({width:widthValue+4}); 
$("#SonlineBox > .openTrigger").hide(); 
} 
//关闭 
$.fn.Sonline.close = function(positionType,speed){ 
$("#SonlineBox > .openTrigger").show(); 
var widthValue =$("#SonlineBox > .openTrigger").width(); 
var allWidth =(-($("#SonlineBox > .contentBox").width())-6); 
if(positionType=="left"){$("#SonlineBox > .contentBox").animate({left: allWidth},speed);} 
else if(positionType=="right"){$("#SonlineBox > .contentBox").animate({right: allWidth},speed);} 
$("#SonlineBox").animate({width:widthValue},speed); 
} 
//子插件:设置列表参数 
$.fn.setList = function(opts){ 
$("body").append("<div class='SonlineBox' id='SonlineBox' style='top:-600px;'><div class='openTrigger' style='display:none' title='展开'></div><div class='contentBox'><div class='closeTrigger'><img src='images/closeBtnImg.gif' title='关闭' /></div><div class='titleBox'><span>客服中心</span></div><div class='listBox'></div></div></div>"); 
if(opts.Qqlist==""){$("#SonlineBox > .contentBox > .listBox").append("<p style='padding:15px'>暂无在线客服。</p>")} 
else{var qqListHtml = $.fn.Sonline.splitStr(opts);$("#SonlineBox > .contentBox > .listBox").append(qqListHtml); } 
if(opts.Position=="left"){$("#SonlineBox").css({left:0});} 
else if(opts.Position=="right"){$("#SonlineBox").css({right:0})} 
$("#SonlineBox").css({top:opts.Top}); 
var allHeights=0; 
if($("#SonlineBox > .contentBox").height() < $("#SonlineBox > .openTrigger").height()){ 
allHeights = $("#SonlineBox > .openTrigger").height()+4; 
} else{allHeights = $("#SonlineBox > .contentBox").height()+4;} 
$("#SonlineBox").height(allHeights); 
if(opts.Position=="left"){$("#SonlineBox > .openTrigger").css({left:0});} 
else if(opts.Position=="right"){$("#SonlineBox > .openTrigger").css({right:0});} 
} 
//滑动式效果 
$.fn.Sonline.scrollType = function(){ 
$("#SonlineBox").css({position:"absolute"}); 
var topNum = parseInt($("#SonlineBox").css("top")+""); 
$(window).scroll(function(){ 
var scrollTopNum = $(window).scrollTop();//获取网页被卷去的高 
$("#SonlineBox").stop(true,true).delay(0).animate({top:scrollTopNum+topNum},"slow"); 
}); 
} 
//分割QQ 
$.fn.Sonline.splitStr = function(opts){ 
var strs= new Array(); //定义一数组 
var QqlistText = opts.Qqlist; 
strs=QqlistText.split(","); //字符分割 
var QqHtml="" 
for (var i=0;i<strs.length;i++){ 
var subStrs= new Array(); //定义一数组 
var subQqlist = strs[i]; 
subStrs = subQqlist.split("|"); //字符分割 
QqHtml = QqHtml+"<div class='QQList'><span>"+subStrs[1]+":</span><a target='_blank' href='http://wpa.qq.com/msgrd?v=3&uin="+subStrs[0]+"&site=qq&menu=yes'><img border='0' src='http://wpa.qq.com/pa?p=2:"+subStrs[0]+":41 &r=0.22914223582483828' alt='点击这里'></a></div>" 
} 
return QqHtml; 
} 
})(jQuery);

效果图如下:
jquery实现漂浮在网页右侧的qq在线客服插件示例
Javascript 相关文章推荐
jquery select多选框的左右移动 具体实现代码
Jul 03 Javascript
让复选框只能选择一项的方法
Oct 08 Javascript
动态加载js、css的实例代码
May 26 Javascript
JS 实现Base64编码与解码实例详解
Nov 07 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
Mar 01 Javascript
JS表格组件神器bootstrap table使用指南详解
Apr 12 Javascript
js 实现复选框只能选择一项的示例代码
Jan 23 Javascript
Vue实现用户自定义字段显示数据的方法
Aug 28 Javascript
vue-router之nuxt动态路由设置的两种方法小结
Sep 26 Javascript
小程序获取周围IBeacon设备的方法
Oct 31 Javascript
基于React Native 0.52实现轮播图效果
Aug 25 Javascript
TypeScript 运行时类型检查补充工具
Sep 28 Javascript
js 程序执行与顺序实现详解
May 13 #Javascript
JS/jQuery实现默认显示部分文字点击按钮显示全部内容
May 13 #Javascript
JS 加入收藏夹的代码(主流浏览器通用)
May 13 #Javascript
jQuery实现长文字部分显示代码
May 13 #Javascript
jq选项卡鼠标延迟的插件实例
May 13 #Javascript
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
May 13 #Javascript
怎么清空javascript数组
May 11 #Javascript
You might like
smarty 原来也不过如此~~呵呵
2006/11/25 PHP
php写入数据到CSV文件的方法
2015/03/14 PHP
HTML中嵌入PHP的简单方法
2016/02/16 PHP
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
网页打开自动最大化的js代码
2012/08/22 Javascript
Javascript this 的一些学习总结
2012/08/31 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
2014/04/29 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
2015/09/14 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
jQuery UI仿淘宝搜索下拉列表功能
2017/01/10 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
bootstrap table 多选框分页保留示例代码
2017/03/08 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
2017/05/18 Javascript
JavaScript实现多重继承的方法分析
2018/01/09 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
4个顶级开源JavaScript图表库
2018/09/29 Javascript
微信小程序开发实现的选项卡(窗口顶部/底部TabBar)页面切换功能图文详解
2019/05/14 Javascript
JS根据json数组多个字段排序及json数组常用操作
2019/06/06 Javascript
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
PyCharm的设置方法和第一个Python程序的建立
2019/01/16 Python
使用 Supervisor 监控 Python3 进程方式
2019/12/05 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
Python实现GIF图倒放
2020/07/16 Python
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)
2017/08/15 HTML / CSS
人力资源部培训专员岗位职责
2014/01/02 职场文书
女儿十岁生日答谢词
2014/01/27 职场文书
艺人经纪人岗位职责
2014/04/15 职场文书
党的群众教育实践活动实施方案
2014/06/12 职场文书
2014党员干部四风问题对照检查材料思想汇报
2014/09/24 职场文书
工作失职检讨书(精华篇)
2014/10/15 职场文书
开业庆典致辞
2015/08/01 职场文书
法制主题班会教案
2015/08/13 职场文书
Python insert() / append() 用法 Leetcode实战演示
2021/03/31 Python