0

私の要件は、数秒ごとに 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);
4

1 に答える 1

0

!=期待されるの代わりに使用していると思われ==ます。

ifまた、この変更を行う場合は、ステートメントを適切にチェーンして使用する必要があります。現状では、 toelse ifから変更すると、 toなどの if ステートメントがトリガーされます。0%-100%-100%-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 に答える