1

以前のいくつかの質問に基づいて、関数を無限回実行しようとしました。しかし、それでもうまくいきません。スクリプトを実行すると、奇妙な瞬間に壊れてしまい、スクリプトを再度実行する前に長い間隔があります。このスクリプトを間隔や停止なしで実行するのを手伝ってくれる人はいますか? ありがとう。

<script type="text/javascript">
$("#go").hide().ready(function(){
animatie();
});
var d = 0;
function animatie() {
 for(var i = 0; i < 3; ++i){
  var b = ".block"+i;
  $(b).hide().delay(d).fadeIn(2000);
  $(b).hide().delay(1000).fadeOut(2000);
  d += 4000;
 }
}
window.setInterval(animatie, 13000);
</script>
4

1 に答える 1

0

トリガーするたびにリセットすることをお勧めしdます。また、代わりに( )を使用する必要があります。最後に、 2回行う必要はありません:http: //jsfiddle.net/nZHCB/0setInterval400050002000 + 1000 + 2000.hide()

function animatie() {
 var d = 0;
 for(var i = 0; i < 3; ++i){
  var b = ".block"+i;
  $(b).hide().delay(d).fadeIn(2000).delay(1000).fadeOut(2000);
  d += 5000;
 }
}
animatie();
window.setInterval(animatie, 15000);

そうは言っても、1つの関数を使用して要素を反復処理することもできます。最後のアニメーション(.fadeOut)が完了したら、次の要素(http://jsfiddle.net/nZHCB/2/ )を使用して関数を再度呼び出します。

$("div").hide();

(function animatie(i) {
    var b = ".block" + i;
    $(b).fadeIn(2000).delay(1000).fadeOut(2000, function() {
        animatie((i + 1) % 3);
    });
})(0);
于 2013-02-07T15:57:03.627 に答える