posts - 2, comments - 27, trackbacks - 0, articles - 60
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

浮动QQ客服的实现

Posted on 2011-11-05 10:01 ZhouFeng 阅读(941) 评论(0)  编辑  收藏 所属分类: 原创Web开发
这个功能是最近的一个东东需要,所以关注了一下,在网上找了一些,感觉都有点复杂,经过一段时间的学习后,终于实现了一个稍微简洁的版本
我是用的wp.qq.com官方网站上的提示完成了,在页面里定义一个DIV,里面的内容安排就自己确定了,我的代码如下
<!-- 在线客服部分 -->
    
<div id="online_box">
        
<div id="title">
            联系我们
        
</div>
        
<div id="qqlist">
            
<p>电话:</p>
            
&nbsp;&nbsp;&nbsp;(028)1234567<br>
            
&nbsp;&nbsp;&nbsp;(028)1234567<br>
            
<br>
            在线咨询:
            
<p>
                客服1 
<target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=111111&site=qq&menu=yes">
                    
<img border="0" src="http://wpa.qq.com/pa?p=2:111111:41" alt="点击这里给我发消息" title="点击这里给我发消息"></a>
            
</p>
            
<p>
                客服2 
<target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=222222&site=qq&menu=yes">
                    
<img border="0" src="http://wpa.qq.com/pa?p=2:222222:41" alt="点击这里给我发消息" title="点击这里给我发消息"></a>
            
</p>
            
<p>
                客服3 
<target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=333333&site=qq&menu=yes">
                    
<img border="0" src="http://wpa.qq.com/pa?p=2:333333:41" alt="点击这里给我发消息" title="点击这里给我发消息"></a>
            
</p>
            
        
</div>
    
</div>
<!-- 在线客服部分结束 -->
那部分<a>...</a>的代码是在wp.qq.com上拷贝的,网站上还有很多的样式供选择,为了适应本来的页面样式,还得定义该层的样式,确定显示位置等,使其更规范些,我的样式定义如下
/********************在线服务部分**********************/
#online_box
{
    position
: absolute;
    float
: right;
    left
: 5px;
    top
: 200px;
    z-index
: 10;
    border
: 1px solid #0168b7;
    width
: 170px;
    background-color
: white;
    text-align
: left;
}
#online_box #title
{
    background-color
: #0168b7;
    color
: white;
    font-size
: 12;
    font-weight
: bold;
    padding
: 10px;
}
#online_box #qqlist
{
    font-size
: 12;
    padding
: 20px;
}
#online_box #qqlist img
{
    vertical-align
:middle;
}
接下来就是对页面滚动的处理,实现层的浮动,我借用了jQuery来完成的,库的引入就不必再写了,下面附上写的脚本
 1 $(document).ready(function(){
 2     
 3     var bodyTop = 0;
 4     var selfHeight = $("#online_box").height();
 5     if (typeof window.pageYOffset != 'undefined') {
 6         bodyTop = window.pageYOffset;
 7     } else if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') {
 8         bodyTop = document.documentElement.scrollTop;
 9     }else if (typeof document.body != 'undefined') {
10         bodyTop = document.body.scrollTop;
11     }
12     $("#online_box").css("top", bodyTop+document.body.clientHeight-selfHeight-5);    
13 });
14 
15 
16 
17 $(window).scroll(function() {
18     var bodyTop = 0;
19     var selfHeight = $("#online_box").height();
20     if (typeof window.pageYOffset != 'undefined') {
21         bodyTop = window.pageYOffset;
22     } else if (typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') {
23         bodyTop = document.documentElement.scrollTop;
24     }else if (typeof document.body != 'undefined') {
25         bodyTop = document.body.scrollTop;
26     }
27     
28     //靠上端方式
29     //$("#online_box").css("top", 100 + bodyTop);
30 
31     //靠下端方式
32     $("#online_box").css("top", bodyTop+document.body.clientHeight-selfHeight-5);
33 });
我采用靠左下的方式显示,直接在CSS中无法确定靠下显示的页面显示高度,所以在ready()里做了一次定位,如果是按上对齐方式,这部分可以不写,直接把TOP写在CSS里就行了,下面的滚动定位也会简单些
好啦,任务完成,收工,今天周六,把前几天完成的事情记录一下先:)

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问