2011-12-03 4 views
1

GoogleのChromeを使用しているときに、画像の回転がうまく動作します。しかし、別のタブを開いて他のページを見ると、ページに戻ったとき(ページがロードされているタブをクリック)、画像の回転はやや速いです!jQuery - フォーカスが別のChromeタブにあったときにイメージの回転が速くなる

私はfadeIn()とfadeOut()を使って画像を表示したり隠したりします。また、このコードは、$(document).ready()でsetTimeout()を使用して開始され、関数の最後にsetTimeout()が使用されている別の関数で囲まれています(前述の関数)。

これを解決するにはどうすればよいですか?

EDIT

コードを使用:

var initialFadeIn = 1000; 
    var itemInterval = 5000; 
    var fadeTime = 2500; 
    var numberOfItems = 0; 
    var currentItem = 0; 

    $(document).ready(function() { 

     numberOfItems = $('.banner-img').length; 
     $('.banner-img').eq(currentItem).fadeIn(initialFadeIn); 

     var imgTitle = $('.banner-img').eq(currentItem).attr('title'); 
     $('.banner-title').text(imgTitle); 

     setTimeout(imgLoop, itemInterval); 

    }); 

    function imgLoop() 
    { 
     $('.banner-img').eq(currentItem).fadeOut(fadeTime); 

     if(currentItem == numberOfItems -1){ 
      currentItem = 0; 
     }else{ 
      currentItem++; 
     } 
     $('.banner-img').eq(currentItem).fadeIn(fadeTime); 

     imgTitle = $('.banner-img').eq(currentItem).attr('title'); 
     $('.banner-title').text(imgTitle); 

     setTimeout(imgLoop, itemInterval); 
    } 
+2

私は([同じ問題を抱え]持っていたhttp://stackoverflow.com/questions/7849904/javascript-jquery-content-rotator(ビューページのソースコードを参照します) -goes-crazy-starts-to-loop-非常に速い - 後 - som)だけでなく、他のブラウザでクロムだけでなく。これは、スクリプトが回転していないフレームを蓄積し、それらをすべて一緒に表示しようとするようなものです。解決策をまとめることができず、代わりに[cycle plugin](http://jquery.malsup.com/cycle/)を使用しました。 – turzifer

+0

ありがとうございます。それは働くように見える。しかし、現在表示されている画像にキャプションを使用する方法を教えてください。 –

+0

見つかりました:http://jquery.malsup.com/cycle/caption.html –

答えて

0

ソリューション:

をturziferが示唆したように、私はサイクルのプラグインを使用:http://jquery.malsup.com/cycle/

をし、画像上のキャプションを表示するには、I使用:

この例のように
<script type="text/javascript"> 
$(function() { 
$('#slideshow').cycle({ 
    fx:  'fadeZoom', 
    timeout: 2000, 
    before:  function() { 
     $('#caption').html(this.alt); 
    } 
}); 
}); 
</script> 

http://jquery.malsup.com/cycle/caption.html

関連する問題