使div开始中间页面,但随着用户向下滚动页面,它仍然在顶部?

使div开始中间页面,但随着用户向下滚动页面,它仍然在顶部?

问题描述:

更好举一个例子来说明我所描述的内容。使div开始中间页面,但随着用户向下滚动页面,它仍然在顶部?

具有类别列表的div元素开始在页面中间,但是当用户向下滚动时,它仍然在顶部?

http://www.khanacademy.org/

我知道如何使一个固定的元素。我的问题是,如何让元素默认显示在页面的中心,但随着用户向下滚动,元素将保持在顶部。

下面是我想要查找的快速jsFiddle example。基本上你有一个相对最初定位的div,然后当页面滚动时,位置变为固定。 jQuery在这里用$(window).scroll事件进行重写。

的jQuery:

var stickerTop = parseInt($('#sticker').offset().top); 
$(window).scroll(function() { 
    $("#sticker").css((parseInt($(window).scrollTop()) + parseInt($("#sticker").css('margin-top')) > stickerTop) ? { 
     position: 'fixed', 
     top: '0px' 
    } : { 
     position: 'relative' 
    }); 
});​ 

CSS:

body { 
    width: 960px; 
} 
#mainbar { 
    width: 660px; 
    float: left; 
} 
#sidebar { 
    width: 270px; 
    float: right; 
} 
#sticker { 
    width: 200px; 
    padding: 10px; 
    margin-top:25px; 
    background: #eee; 
    border: 1px solid #ccc; 
}​ 
+0

@ come2gether如果你使用jQuery,这是一个简单的解决方案。如果你不是,你可以很容易地调整一个纯粹的JS解决方案。 – Umbrella 2012-04-10 20:34:14