jQuery:如何将DIV保持在屏幕顶部并在向上滚动(并到达其原始位置)后恢复其位置

Oma*_*mar 5 jquery scroll

我想要一个div元素来做类似于gmail的事情.

  • 当向下滚动,一旦Gmail的菜单(归档,垃圾邮件,删除...等)到达屏幕的顶部,它在那里停留.

  • 向上滚动时,菜单返回到原始位置.

另一个示例是此页面的侧栏:示例2

如何使用简单(易于理解)的jQuery代码实现这一目标?(兼容所有浏览器)

<div id="header">Menu goes here =)</div>
Run Code Online (Sandbox Code Playgroud)

Mat*_*ley 17

我讨厌插入我的博客,但我在帖子中解决了这个确切的问题.http://www.dittocode.com/how-to-emulate-gmails-floating-menu-bar-with-jquery/

具体到您的问题,试试这个:

CSS:

#header.floating {
    position: fixed;
    top: 0;
}
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

$(document).ready( function() {

    $(window).scroll( function() {
        if ($(window).scrollTop() > $('#header-wrapper').offset().top)
            $('#header').addClass('floating');
        else
            $('#header').removeClass('floating');
    } );

} );
Run Code Online (Sandbox Code Playgroud)

jsFiddle:http://jsfiddle.net/omarjuvera/0p9p43Lz/

  • +1非常酷.但是,您可能希望发布代码,因为有时会对网站的链接不满意,因为如果网站出现故障.... (2认同)
  • 另外,如果你把它变成一个(非常)有用的工具插件. (2认同)
  • +1 - 效果很好.你应该在插件世界中分享这个 (2认同)