Jquery 我试图在页面滚动时显示徽标>;920

Jquery 我试图在页面滚动时显示徽标>;920,jquery,css,Jquery,Css,嗨,我正在尝试设置一个侧边栏徽标,使其仅在页面滚动到下一节时显示,而没有徽标空间导致页面跳转 我正在使用以下代码 $(window).scroll(function(){ if ($(window).scrollTop() > 920){ $('#logo').show(); $('#main-nav').css('top','0px'); } else $('#logo').hide();

嗨,我正在尝试设置一个侧边栏徽标,使其仅在页面滚动到下一节时显示,而没有徽标空间导致页面跳转

我正在使用以下代码

$(window).scroll(function(){
    if ($(window).scrollTop() > 920){
        $('#logo').show();
        $('#main-nav').css('top','0px');
    }
    else 
                $('#logo').hide();
                $('#main-nav').css('top','100px');
                endif
});
我想我可以使用css来保持空间不变,但当徽标可见时,它似乎会将其添加到空间中


任何建议都很受欢迎

您的代码应该可以正常工作,我认为您只是有一些格式/语法错误

请参见此处的工作示例:

使用上面的代码,每次滚动页面时,它都在操作DOM。添加布尔变量以检查是否需要应用它将停止不必要的调用,并且效率更高

请参见此处更新的工作示例

var passwaypoint=false;
$(窗口)。滚动(函数(){
如果($(窗口).scrollTop()>920&&!pastWaypoint){
$(“#徽标”).show();
$('main nav').css('top','0px');
pastWaypoint=真;
}
否则,如果($(window).scrollTop()因为jQuery Show()和Hide()的工作方式与css display属性相同,那么如果希望在布局中保留徽标的空间,而不管徽标是否可见,您可能需要尝试使用可见性

$(window).scroll(function(){
    if ($(window).scrollTop() > 920) {
        $('#logo').css('visibility','visible');
        $('#main-nav').css('top','0px');
    } else {
        $('#logo').css('visibility','hidden');
        $('#main-nav').css('top','100px');
    }
});
这可能有助于解决页面跳转问题

var pastWaypoint = false;
$(window).scroll(function(){
    if ($(window).scrollTop() > 920 && !pastWaypoint) {    
        $('#logo').show();
        $('#main-nav').css('top','0px');
        pastWaypoint = true;
    }
    else if ($(window).scrollTop() <= 920 && pastWaypoint)
    {
        $('#logo').hide();
        $('#main-nav').css('top','100px');
        pastWaypoint = false;
    }
});
$(window).scroll(function(){
    if ($(window).scrollTop() > 920) {
        $('#logo').css('visibility','visible');
        $('#main-nav').css('top','0px');
    } else {
        $('#logo').css('visibility','hidden');
        $('#main-nav').css('top','100px');
    }
});