在滚动菜单上更改类,首先单击问题

时间:2015-10-07 15:11:10

标签: javascript jquery css scroll menu

我想滚动一页菜单,滚动时会有较小的高度(在某一点之后)。这是代码:

$(document).ready(function () {
    var menu = $('.menuclass');
    $(window).scroll(function () {
        var y = $(this).scrollTop();
        var z = $('.someclass').offset().top;
        if (y >= z) {
            menu.removeClass('nav1').addClass('nav2');
        } else {
            menu.removeClass('nav2').addClass('nav1');
        }
    });
});

类nav1的高度为120px,类nav2的高度为60px

一切正常,除了在第一次滚动(点击)到第一个锚点时,存在一个问题,即菜单重叠部分仍然具有120px高度而不是60px应该来自新类。我想脚本已经使用了第一个高度来计算。在第二次滚动时,问题消失。

即使在第一次激活脚本时,如何在脚本中添加60px的大小?

2 个答案:

答案 0 :(得分:0)

您是否可以通过相关的CSS和HTML显示您的代码? 你发布的JS代码应该不是问题。

答案 1 :(得分:0)

与粘性菜单的sticky.js脚本发生冲突。它在与改变类的脚本相同的div上调用。我删除它,问题消失了。相反,我只使用css,position:fixed;用于菜单。