Javascript 如何修复此固定导航栏淡入

Javascript 如何修复此固定导航栏淡入,javascript,jquery,html,Javascript,Jquery,Html,我有一个固定的导航栏。我希望初始菜单不会仅在您将页面滚动到某个位置后显示。我做了一个工作,但当我卷回顶部时,菜单上没有显示首字母。我将css中的类定义为display none。你能帮我做这个吗?提前通知我 $(function(){ var menu = $('#menu'), pos = menu.offset(); $(window).scroll(function(){ if($(this).scrollTop() &g

我有一个固定的导航栏。我希望初始菜单不会仅在您将页面滚动到某个位置后显示。我做了一个工作,但当我卷回顶部时,菜单上没有显示首字母。我将css中的类定义为display none。你能帮我做这个吗?提前通知我

$(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');
                });
            }
        });

});
$(函数(){
变量菜单=$(“#菜单”),
pos=菜单偏移量();
$(窗口)。滚动(函数(){
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()
else if($(this).scrollTop()发生这种情况的原因是这一行

$(this).removeClass('fixed').addClass('default').fadeIn('fast');
添加类“default”后,使用fadeIn函数。jQuery检测到fadeIn效果应用于具有
display:none
的元素,并向该div添加一个新的CSS样式,即
display:block

有两种方法可以解决这个问题

Jquery方式

改变

$(this).removeClass('fixed').addClass('default').fadeIn('fast');
                          TO 
$(this).removeClass('fixed').addClass('default');

CSS方式

在.default类中更改以下行

display:none; 
     TO
display:none !important;

您必须修改
其他
循环,如下所示(要使用
淡出
):

fadeIn
通过将匹配元素淡入不透明来显示匹配元素,而
fadeOut
通过将匹配元素淡入透明来隐藏匹配元素

else if($(this).scrollTop() <= pos.top && menu.hasClass('fixed')){
                menu.fadeOut('fast', function(){
                    $(this).removeClass('fixed').addClass('default').fadeOut('fast');
                });
else if($(this).scrollTop()只需删除最后一个fadeIn()
else if($(this).scrollTop() <= pos.top && menu.hasClass('fixed')){
                menu.fadeOut('fast', function(){
                    $(this).removeClass('fixed').addClass('default').fadeOut('fast');
                });