我正在尝试在我的网页上多次更改图像以用于不同的部分,但我可能会陷入简单的解决方案。
这是我的问题的jquery。我们的想法是在1200和1900之间更改图像,然后在2500和3500之间再次更改。
请有人帮助我!!
非常感谢。
var $logo = $("h6.navbar-brand-spacing > a");
$(window).scroll(function () {
var e = $(this).scrollTop();
if ((e > 1200 && e < 1900) && (e > 2500 && e < 3500)) {
$logo.addClass('navbar-brand-scroll');
} else {
$logo.removeClass('navbar-brand-scroll');
}
});
答案 0 :(得分:0)
试试这个;
var $logo = $("h6.navbar-brand-spacing > a");
$(window).scroll(function () {
var e = $(this).scrollTop();
if ((e > 1200 && e < 1900) || (e > 2500 && e < 3500)) {
$logo.addClass('navbar-brand-scroll');
} else {
$logo.removeClass('navbar-brand-scroll');
}
});
将OR(||)置于e > 1200 && e < 1900
和e > 2500 && e < 3500
之间,这意味着在任何条件的代码中执行内部。
如果你输入AND(&amp;&amp;),那么e > 1200 && e < 1900
和e > 2500 && e < 3500
一次都不能为真,所以它总是返回false。
答案 1 :(得分:0)
你在两个条件之间使用&&
,这种情况永远不会发生。
if ((e > 1200 && e < 1900) && (e > 2500 && e > 3500))
它永远不会在1200-1900和>之间。 2500 ... 改为使用OR:
if ((e > 1200 && e < 1900) || (e > 2500 && e < 3500))
答案 2 :(得分:0)
你的逻辑有点狡猾
if ((e > 1200 && e < 1900) && (e > 2500 && e > 3500))
如果e
介于1200和1900之间,且大于2500且大于3500,则总是评估为false。
将其更改为
if ((e > 1200 && e < 1900) || (e > 2500 && e < 3500))
答案 3 :(得分:0)
我认为你的if语句存在逻辑问题。它说,如果变量“e”介于1200和1900之间,并且同时介于2500和3500之间,那么我认为你在else语句中处于循环中。
答案 4 :(得分:0)
if ((e > 1200 && e < 1900) || (e > 2500 && e > 3500)) {
// if e is great of 1200 and less 1900
// OR
// e is great 2500 and less 3500
$logo.addClass('navbar-brand-scroll');
} else {
// if e is lower 1200 OR greater 1900 but lower than 2500
// OR greater than 3500
$logo.removeClass('navbar-brand-scroll');
}
这是吗?条件之间 || 而非&amp;&amp;