区间函数中的许多if语句,一个有效,但更多的无效



我的要求是每隔几秒钟,我的div标记就会向左滑动(左边空白)。

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

有什么东西我遗漏了吗?

是因为有很多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);

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

此外,如果进行此更改,则必须正确地链接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);
});

最新更新