我有一个固定的导航栏。我希望仅在将页面滚动到某个位置后才显示初始菜单。我没有做过工作,但是当我向后滚动时,没有显示初始菜单。我在css中将该类定义为不显示。你能帮我吗?提前thnx。

$(function(){

    var menu = $('#menu'),
        pos = menu.offset();

        $(window).scroll(function(){
            if($(this).scrollTop() > pos.top+menu.height() && menu.hasClass('default')){
                menu.fadeOut('fast', function(){
                    $(this).removeClass('default').addClass('fixed').fadeIn('fast');
                });
            } else if($(this).scrollTop() <= pos.top && menu.hasClass('fixed')){
                menu.fadeOut('fast', function(){
                    $(this).removeClass('fixed').addClass('default').fadeIn('fast');
                });
            }
        });

});


http://jsfiddle.net/VjfHg/

编辑:嘿,感谢您的所有答复,所有的都在工作,对不起,如果我要加粗,但是您能帮助我将其显示到某个位置吗?比如说您滚动500px然后在相同位置淡出?:)

最佳答案

您必须像下面那样修改else循环(才能使用fadeOut):

fadeIn通过将匹配的元素淡化为不透明来显示匹配的元素,而fadeOut通过将它们的淡化为透明来隐藏匹配的元素。

else if($(this).scrollTop() <= pos.top && menu.hasClass('fixed')){
                menu.fadeOut('fast', function(){
                    $(this).removeClass('fixed').addClass('default').fadeOut('fast');
                });


Working Demo

编辑:Updated Working Demo基于问题中的更改。

关于javascript - 如何修复此固定的导航栏淡入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18629755/

10-09 21:23