这个东西经常用来做为浮动广告,不过也可以做成一个浮动的菜单条,有利于浏览者快速跳转。
跟随页面滚动的原理是,将浮动层的定位坐标“top”值设置为页面的滚动高度即可。
通过可选参数来设定动画移动的值,以及浮动元素离顶端的距离。还提供了一个属性isActive来设定是否跟随滚动,一个方法toggleActive来开关跟随效果。
跟随页面滚动的浮动层
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
Code
1 /**
2 * FloatDiv
3 * @classDescription create a float Div scrolling with the browser window.
4 * @dependence Mootools (http://www.mootools.net)
5 * @author Aken.li (http://www.kxbd.com)
6 * @version 1.0
7 * @created 2009-01-25
8 */
9 var FloatDiv = new Class({
10 Implements:Options,
11
12 options:{
13 y:0,//到文档视图顶端的距离
14 interval:0.01,//时长,单位为秒
15 step:0.1//步长,数字越小,动画越慢,为1时无缓动动画
16 },
17
18 initialize:function(id,options){
19 this.setOptions(options);
20 this.obj = $(id);
21 this.isActive = true;
22 this.scrollFunc.periodical(this.options.interval*1000,this);
23 },
24
25 scrollFunc:function(){
26 if(this.isActive){
27 var posNow = parseInt(this.obj.getStyle('top'));
28 var offset = (window.getScroll().y+this.options.y-posNow)*this.options.step;
29 offset = offset > 0 ? Math.ceil(offset) : Math.floor(offset);
30 this.obj.setStyle('top',posNow+offset);
31 }
32 },
33
34 toggleActive:function(){
35 this.isActive = this.isActive ? false:true;
36 }
37 });