jQuery如果然后
问题描述:
嗨我有一个粘性导航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');
}
});
希望有任何帮助。
感谢所有
答
根据其他答案,主要问题是您的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
答
你增加额外()在你if条件,所以你只是需要这种
if ($(document).scrollTop() > 100) && ($(window).width() > 768)
与
if ($(document).scrollTop() > 100 && $(window).width() > 768)
更换然后,它会为你工作完美。
请您解释更多? –
你唯一犯的错误就是做这个'if(a)&&(b)'而不是'if(a && b)'这跟jQuery没有关系,只是javascript语法错误 – Jamiec
@Manjeet Thakur简单将第一个jQuery代码我张贴上述我想要的代码运行仅当屏幕大于768px – rufus