滚动时让Div"抓住"页面顶部

And*_*ing 0 html javascript css jquery

我在网页fixed 20px顶部有一个标题.

但是,我想在滚动时抓住页面的顶部,并在用户向下滚动20px后固定到屏幕顶部.

CSS

#header{
    padding: 0px 0px 0px 0px;
    background: url(../images/header-fill2.jpg) repeat-x top;
    position: fixed;
    height: 60px;
    width: 100%;
    top: 20px;
    z-index: 5000;
}
Run Code Online (Sandbox Code Playgroud)

我想有一些形式的JavaScript是必需的,但几乎没有JavaScript经验,所以任何帮助都将非常感激.

put*_*nde 5

只需听取scroll事件并读取值$(window).scrollTop()top根据该值设置.
就像是:

$(window).on('scroll', function() {
    $('#header').css('top', $(window).scrollTop() > 20 ? '0px' : '20px');
});
Run Code Online (Sandbox Code Playgroud)

关于jsFiddle的示例

  • @AndyKing:如果你将中间的主线改为`$('#header').css('top',Math.max(0,20- $(window).scrollTop()));`,它会很光滑,而不是突然啪的一声.([更新小提琴](http://jsfiddle.net/VmjeF/1/))您可能还想避免不断重新创建这些对象,滚动发生了很多**. (2认同)