2017-06-29 84 views
-2

嗨我有一个粘性导航jQuery添加背景颜色的滚动顶部100px或更多。这是jQuery的。jQuery如果然后

$(window).scroll(function() { 
    if ($(document).scrollTop() > 100) { 
     $('header').addClass('sticky-nav-bg'); 
    } 
    else { 
     $('header').removeClass('sticky-nav-bg'); 
    } 
    }); 

我想做的仅仅只是增加一个“和”后“如果($(文件).scrollTop()> 100)”只有当窗口大小大于768px运行此。这是我试过但没有工作,我的jQuery是一种基本如此裸露在我身上。

$(window).scroll(function() { 
    if ($(document).scrollTop() > 100) && ($(window).width() > 768) { 
     $('header').addClass('sticky-nav-bg'); 
    } 
    else { 
     $('header').removeClass('sticky-nav-bg'); 
    } 
    }); 

希望有任何帮助。

感谢所有

+0

请您解释更多? –

+1

你唯一犯的错误就是做这个'if(a)&&(b)'而不是'if(a && b)'这跟jQuery没有关系,只是javascript语法错误 – Jamiec

+0

@Manjeet Thakur简单将第一个jQuery代码我张贴上述我想要的代码运行仅当屏幕大于768px – rufus

回答

1

根据其他答案,主要问题是您的if语法。要结合两个(或更多)的条件下,你做里面的括号这样

if(a && b){ ... } 

然而,有一个与你的代码中的另一个问题,因为你预期它。你的逻辑目前会说(在伪代码)

if scrolled beyound 100px and the screen is greater than 768px 
    add a class 
else 
    remove a class 

从逻辑上讲,这意味着在屏幕上比768px较小它就会不断地试图删除类当用户滚动。

要改变这一点,首先将所有内容都包含在if中检查屏幕大小,然后if判断是否添加或删除类。

$(window).scroll(function() { 
    if($(window).width() > 768){ 
    if ($(document).scrollTop() > 100) { 
     $('header').addClass('sticky-nav-bg'); 
    } 
    else { 
     $('header').removeClass('sticky-nav-bg'); 
    } 
    } 
}); 
+0

这真是太好了,非常感谢我深入分析了我做错了什么以及如何纠正它。非常感谢。 – rufus

1

你增加额外()在你if条件,所以你只是需要这种

if ($(document).scrollTop() > 100) && ($(window).width() > 768) 

if ($(document).scrollTop() > 100 && $(window).width() > 768) 

更换然后,它会为你工作完美。

+1

这是正确的......但是,解释问题的原因可能更好,而不是仅仅说“将此更改为此”。 –

+0

好吧,你是对的 –

+0

这非常非常确实非常感谢@BibhudattaSahoo – rufus

相关问题