0

我的要求是每隔几秒钟我的 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);
4

1 回答 1

0

我怀疑你正在使用!=而不是预期的==.

此外,如果您进行此更改,则必须正确链接您的if语句才能使用else if,否则,就目前而言,更改 from 0%to-100%将触发 if 语句 for -100%to-200%等等。

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

由于下面的评论线程,这已更新。

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

    marginLeft -= 100;

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

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

$(function() {
    setCarouselMargin(0);
});
于 2013-08-28T08:11:14.227 回答