基于jquery的QQ在线客户插件

本文介绍了一个基于jQuery的在线客服插件实现方法,包括如何通过鼠标悬停展开和关闭客服窗口、设置客服列表及兼容IE6等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[javascript] 
/*此插件基于Jquery */ 
(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); 
  }   www.2cto.com
                $("#SonlineBox").hover(function() { 
                     //展开 
              $.fn.Sonline.open(opts.Position); 
           }, function() { 
                     //关闭 
       $.fn.Sonline.close(opts.Position,"fast"); 
         }); 
                     //关闭按钮 
  $("#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:false, //默认展开: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);     

 

原文:http://www.2cto.com/kf/201208/151916.html

基于Spring Boot搭建的一个多功能在线学习系统的实现细节。系统分为管理员和用户两个主要模块。管理员负责视频、文件和文章资料的管理以及系统运营维护;用户则可以进行视频播放、资料下载、参与学习论坛并享受个性化学习服务。文中重点探讨了文件下载的安全性和性能优化(如使用Resource对象避免内存溢出),积分排行榜的高效实现(采用Redis Sorted Set结构),敏感词过滤机制(利用DFA算法构建内存过滤树)以及视频播放的浏览器兼容性解决方案(通过FFmpeg调整MOOV原子位置)。此外,还提到了权限管理方面自定义动态加载器的应用,提高了系统的灵活性和易用性。 适合人群:对Spring Boot有一定了解,希望深入理解其实际应用的技术人员,尤其是从事在线教育平台开发的相关从业者。 使用场景及目标:适用于需要快速搭建稳定高效的在线学习平台的企业或团队。目标在于提供一套完整的解决方案,涵盖从资源管理到用户体验优化等多个方面,帮助开发者更好地理解和掌握Spring Boot框架的实际运用技巧。 其他说明:文中不仅提供了具体的代码示例和技术思路,还分享了许多实践经验教训,对于提高项目质量有着重要的指导意义。同时强调了安全性、性能优化等方面的重要性,确保系统能够应对大规模用户的并发访问需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值