CSS/HTML:一旦你滚动它,如何使某些东西变得绝对定位

try*_*000 15 html css jquery

我是CSS和HTML的新手,我正在努力学习如何在页面上滚动它后让它变得绝对定位.

这是我的意思的一个例子:http://fab.com/help/(你不需要一个帐户来滚动).向下滚动时,顶部的黑色菜单栏消失,带有"我们如何帮助您"的白色菜单栏变为绝对定位.

我创建了一个类似菜单系统的示例,

http://jsfiddle.net/jkdbP/

但我不知道从哪里开始,一旦它滚动就变得绝对定位,非常感谢任何见解!

Ry-*_*Ry- 15

看到这个jsFiddle:http://jsfiddle.net/jkdbP/2/

var menuTop = $('.menu').offset().top;
var menuClone = $('.menu').clone().addClass('fixed');

$(window).bind('scroll', function() {
    var scrollY = window.pageYOffset;

    if(scrollY > menuTop) {
        if(menuClone.parent().length === 0) {
            menuClone.appendTo($('.menu').parent());
        }
    } else if(menuClone.parent().length > 0) {
        menuClone.remove();
    }
});
Run Code Online (Sandbox Code Playgroud)

您可以使用jQuery .offset().top来获取菜单的Y位置,以及window.pageYOffset(或者document.body.scrollTop对于旧的IE兼容性)来获取页面的滚动偏移量.然后,您可以处理windowscroll事件.

  • +1,但请将代码编辑到您的答案中. (2认同)
  • 同样对于OP:确保你使用其他内容的定位,因为`position:fixed`有效地将元素从文档流中撕掉,因此当菜单开始浮动时内容的小跳跃,因为它们重新开始-flow填满菜单的空间.如果使用更高的菜单元素,它会变得更加明显. (2认同)