陷入带有两个变量的IF条件

时间:2018-03-23 16:21:20

标签: jquery if-statement scroll

我正在尝试在我的网页上多次更改图像以用于不同的部分,但我可能会陷入简单的解决方案。

这是我的问题的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');
  }
});

5 个答案:

答案 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 < 1900e > 2500 && e < 3500之间,这意味着在任何条件的代码中执行内部。

如果你输入AND(&amp;&amp;),那么e > 1200 && e < 1900e > 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;