为什么高度不变?

时间:2014-03-13 16:06:51

标签: jquery

我试图创建一个浮动菜单,当您向下滚动页面时浮动菜单 DEMO
我还想增加菜单的高度,所以我添加了height: 70。现在,我希望当您滚动到顶部时,菜单将返回相同的位置,因此我添加了height: nav.height()
代码无效,当您滚动到顶部时,菜单不会返回其默认高度值。

提前致谢。

1 个答案:

答案 0 :(得分:0)

当用户滚动到顶部时,只需将高度设置为50。当您开始滚动时,nav.height()将设置为70,并且当用户再次滚动到顶部时您正在使用此值。

尝试

$(function () {

    var nav = $('.navgroups');
    var navHomeY = nav.offset().top;
    var isFixed = false;
    var $w = $(window);
    $w.scroll(function () {
        var scrollTop = $w.scrollTop();
        var shouldBeFixed = scrollTop > navHomeY;
        if (shouldBeFixed && !isFixed) {
            nav.css({
                position: 'fixed',
                top: 0,
                left: nav.offset().left,
                width: nav.width(),
                height: 70
            });
            isFixed = true;
        } else if (!shouldBeFixed && isFixed) {
            nav.css({
                height: 50,//<---------HERE
                position: 'static'
            });
            isFixed = false;
        }
    });
});

DEMO