jQuery浮动层追随页面滚动

jQuery浮动层跟随页面滚动

在本文中,我将介绍一个可以跟随页面滚动的层效果,当用户滚动鼠标滚轮或者拖动浏览器滚动条时,浮动层将跟随滚动。我通过实例讲解相关插件的应用以及使用时注意事项。

该效果大多应用在企业网站的在线客服服务、电子商务网站的购物车以及商业网站的广告条展示等场合。

在本例中,我用到了一个重要的插件:scroll-follow,该插件在当前主流浏览器IE6+, FF2+, Safari 3,and Opera 9均测试通过,具有可配置参数,使用简单的特点。

jQuery浮动层追随页面滚动

jQuery浮动层追随页面滚动jQuery浮动层追随页面滚动

XHTML

<div id="scroll" class="demo"> 
    ...任意你想展示的内容 
</div> 

只需要一个div层,内容任意。值得注意的是,如果你想把DIV展示在页面左右两边,则应该把这个DIV放在紧跟<body>后。

CSS

.demo{width:180pxheight:250pxmargin:10pxborder:2px solid #cccbackground:#eee; 
 padding:10pxposition:relativemargin-top:-290px;} 

设置DIV的宽度和高度,并设置绝对位置position:relative以及距离顶部的值margin-top:-290px,这个290是怎么算出来的呢?一看就明白:290=250+10x2+10x2即DIV高度+两个margin值+两个padding值。

jQuery

首先引入jquery库和scroll-follow.js

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="jquery.scroll-follow.js"></script> 

调用插件非常简单,代码如下:

$(function(){ 
    $("#scroll").scrollFollow(); 
}); 

你可以通过设置以下参数获得更多的效果:

 

参数 描述 默认值
speed 滚动的间隔毫秒数,数值越小,滚动越快。 500
offset 距离滚动顶部的点数(pixels)。 0
relativeTo 设置滚动的DIV靠上还是靠下,可以设置为"top"或"bottom"。 top
killSwitch 开启和取消跟随滚动开关的元素ID,需要jQuery Cookie plugin支持。 "killSwitch"
onText 如果启用了跟随滚动,开关显示的文字。 "Turn Slide Off"
offText 如果取消了跟随滚动,开关显示的文字。 "Turn Slide On"

官方网站还提供了delay和container两个参数,用来控制滚动延时和滚动范围,我觉得没有多大实用意义,就不作描述了。

需要提醒的是,如果我想让浮动的DIV层展示在页面的右侧,该怎么办?其实该插件不具备此功能,我们需要做的就是通过CSS来定位浮动DIV的位置。

.demo{width:180pxheight:250pxmargin:10pxborder:2px solid #cccbackground:#eee; 
 padding:10pxposition:absolutemargin-top:156pxright:10px;} 

通过相对定位来确定浮动DIV层的位置,相当灵活,具体效果可以查看DEMO演示。


1楼GJYSK5天前 13:51
测试代码的时候,竟然出错了!n错误提示为:n错误: 'box.cont.offset().top' 为空或不是对象。