2012-01-29 27 views
0

私の仕事は、divブロックの中で次の無限のテキストブロックを持つページを作成することです。javascriptを使用した無限の今後のテキスト

<script> 
      var startOffset = 0; 
      var startOffsetPlus; 
      var startOffsetMinus; 
      $(document).ready(function() { 

       startOffset = $(".carousel-item").last().offset().top; 
       startOffsetPlus = "+="+ startOffset +"px"; 
       startOffsetMinus = "-="+ startOffset +"px"; 
       //endless loop call 
       setInterval('beginEndlessLoop()', 1000/*Starting delay in ms*/); 
      }); 
      function beginEndlessLoop(){ 
       setInterval('moveTextUp()', 0 /*ms*/); 
      } 
      function moveTextUp() { 
       $(".carousel-block").animate(
        {"top": startOffsetMinus}, 
        { 
         duration: 10000/*ms*/, 
         easing: "linear"} 
        ); 
       //move blocks to start position 
       $(".carousel-block").animate({"top": startOffsetPlus}, 0/*ms*/); 
      } 
</script> 

このソリューションは正常に動作します: はここに私のソリューションです。しかし、1つの問題は、このスクリプトがプロセッサとメモリをますます必要とすることです。私はJavaScriptのプログラマーではない。誰でもガベージコレクタなどを呼び出す方法を教えてください。 =)

+0

実際には、setIntervalの機能を調べる必要があります。これは、あなたのアプリがなぜ死んでいるのかについての最初の手がかりを与えます。あなたのコードは完全に書き直されなければなりません。基本的にこの時点で、あなたは質問をするのではなく、コードを書くように求めています。 –

+0

@Anubisあなたは無限ループを作成した後に何を期待するのですか?無限のCPU時間とメモリの無駄。 – Teemu

+0

@ dku.rajkumar:ごめんなさいあなたを理解できません。 – Anubis

答えて

0

使用コールバックを必要といけません。作品!

<script> 
      var startOffset = 0; 
      var startOffsetPlus; 
      var startOffsetMinus; 
      $(document).ready(function() { 
       startOffset = $(".carousel-item").last().offset().top; 
       startOffsetPlus = "+="+ startOffset +"px"; 
       startOffsetMinus = "-="+ startOffset +"px"; 
       window.setTimeout(function(){moveTextUp()}, 3000); 
      }); 
      function moveTextUp() { 
       $(".carousel-block").animate({"top": startOffsetMinus}, 10000, 'linear', function() { 
        $(".carousel-block").animate({"top": startOffsetPlus}, 0); 
        moveTextUp(); 
       }); 
      } 
</script> 
1

あなたがたsetInterval()$ .animate

完了
function moveTextUp() 
{ 
$(".carousel-block").animate(
        {"top": startOffsetMinus}, 
        { 
         duration: 10000/*ms*/, 
         easing: "linear", 
         complete: moveTextUp 
        } 

        ); 
} 
+0

と同じ結果です。メモリとCPUの使用量が増加しています – Anubis

+0

試してみてください:setTimeout(moveTextUp、500) – Shaheer

+0

あなたは正しい方向に私を送るように感謝します。 +あなたに! – Anubis

関連する問題