jQuery实现浮动层跟随页面滚动效果
在本文中,我将介绍一个可以跟随页面滚动的层效果,当用户滚动鼠标滚轮或者拖动浏览器滚动条时,浮动层将跟随滚动。我通过实例讲解相关插件的应用以及使用时注意事项。
该效果大多应用在企业网站的在线客服服务、电子商务网站的购物车以及商业网站的广告条展示等场合。
在本例中,我用到了一个重要的插件:scroll-follow,该插件在当前主流浏览器IE6+, FF2+, Safari 3,and Opera 9均测试通过,具有可配置参数,使用简单的特点。
XHTML
<div id="scroll" class="demo">
...任意你想展示的内容
</div>
只需要一个div层,内容任意。值得注意的是,如果你想把DIV展示在页面左右两边,则应该把这个DIV放在紧跟<body>后。
CSS
.demo{width:180px; height:250px; margin:10px; border:2px solid #ccc; background:#eee;
padding:10px; position:relative; margin-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:180px; height:250px; margin:10px; border:2px solid #ccc; background:#eee;
padding:10px; position:absolute; margin-top:156px; right:10px;}
通过相对定位来确定浮动DIV层的位置,相当灵活,具体效果可以查看DEMO演示。