Javascript jQuery scroll函数在每个滚动条上加上前缀

Javascript jQuery scroll函数在每个滚动条上加上前缀,javascript,jquery,html,Javascript,Jquery,Html,我有一个非常简单的导航栏,可以在滚动条上进行更改。徽标应该是预先设置好的,但每次滚动页面时,都会添加另一个徽标。我有一个布尔值在那里检查是否标志已添加,但它仍然运行代码无论如何。这是我的密码: $(window).scroll(function() { var scroll = $(window).scrollTop(), hidden = true; if (scroll >= 470) { $('#nav'

我有一个非常简单的导航栏,可以在滚动条上进行更改。徽标应该是预先设置好的,但每次滚动页面时,都会添加另一个徽标。我有一个布尔值在那里检查是否标志已添加,但它仍然运行代码无论如何。这是我的密码:

$(window).scroll(function() {
        var scroll = $(window).scrollTop(),
            hidden = true;
        if (scroll >= 470) {
            $('#nav').addClass('static-nav');
            if(hidden) {
                $('#logo').prepend(' <div class="logo-container"> <img src="img/logo3.png" alt="logo"></div>');
                hidden= false;
            }
        }else{
            $('#nav').removeClass('static-nav');
            if(!hidden) {
                $('.logo-container').remove();
                hidden = true;
            }
        }
    });
$(窗口)。滚动(函数(){
var scroll=$(窗口).scrollTop(),
隐藏=真实;
如果(滚动>=470){
$('#nav').addClass('static-nav');
如果(隐藏){
$(“#logo”)。前缀(“”);
隐藏=错误;
}
}否则{
$('#nav').removeClass('static-nav');
如果(!隐藏){
$('.logo容器')。删除();
隐藏=真实;
}
}
});

隐藏布尔值应该在滚动事件功能之外,否则每次更改滚动位置时都会出现

但是你应该检查导航是否可见,而不是从像素到顶部。您无法预测用户是否会以这种方式查看菜单。像这样的方法应该会奏效:


隐藏布尔值应该在滚动事件功能之外,否则每次更改滚动位置时都会出现

但是你应该检查导航是否可见,而不是从像素到顶部。您无法预测用户是否会以这种方式查看菜单。像这样的方法应该会奏效:


您正在设置
hidden=true在每个滚动处理程序上,但是每次输入函数时,布尔值都会重置。也许您可以简单地检查类“logo container”是否存在。使用隐藏的布尔值没有任何意义,除非像
hidden=$('.logo container')那样指定它。长度===0
@A.Wolff就是这样。非常感谢。您正在设置
hidden=true在每个滚动处理程序上,但是每次输入函数时,布尔值都会重置。也许您可以简单地检查类“logo container”是否存在。使用隐藏的布尔值没有任何意义,除非像
hidden=$('.logo container')那样指定它。长度===0
@A.Wolff就是这样。非常感谢你。