在一个区间函数中有很多if语句,一个有效,但更多不是吗?

时间:2013-08-28 07:59:13

标签: if-statement intervals

我的要求是每隔几秒我的div标签向左滑动(margin-left)。

我认为代码是自我解释的。

我有什么遗失的东西吗?

是否因为if语句数量众多?

或者是否有更简单,更智能的功能?

setInterval(function(){
  if ($(".carousel").css("margin-left")!='0%'){
      $(".carousel").css("margin-left", "-100%");
  }
  if ($(".carousel").css("margin-left")!='-100%'){
      $(".carousel").css("margin-left", "-200%");
  }
  if ($(".carousel").css("margin-left")!='-200%'){
      $(".carousel").css("margin-left", "-300%");
  }
  if ($(".carousel").css("margin-left")!='-300%'){
      $(".carousel").css("margin-left", "-400%");
  }
  if ($(".carousel").css("margin-left")!='-400%'){
      $(".carousel").css("margin-left", "-500%");
  }
  if ($(".carousel").css("margin-left")!='-500%'){
      $(".carousel").css("margin-left", "-600%");
  }
  if ($(".carousel").css("margin-left")!='-600%'){
      $(".carousel").css("margin-left", "-700%");
  }
  if ($(".carousel").css("margin-left")!='-700%'){
      $(".carousel").css("margin-left", "0%");
  }
}, 2000);

1 个答案:

答案 0 :(得分:0)

我怀疑您使用的是!=而不是预期的==

此外,如果您进行此更改,则必须正确链接if语句以使用else if,否则,从0%更改为-100% }将触发-100%-200%的if语句,依此类推。

另一方面,更简单的功能可能如下:

由于以下评论主题,此内容已更新。

function setCarouselMargin(marginLeft) {
    $('.carousel').css('margin-left', marginLeft + '%');

    marginLeft -= 100;

    if (marginLeft < -700) {
        marginLeft = 0;
    }

    setTimeout(function () { setCarouselMargin(marginLeft) }, 2000);
}

$(function() {
    setCarouselMargin(0);
});