2016-04-16 3 views
0

EDITを作成します。私たちはコードの再自体を実行して終了されるまで以下のコードは、各フェードの間に7秒間のポーズを作成する問題https://jsfiddle.net/MichaelCaley/wcoba1jy/jQueryの機能はanomolous休止

を示すフィドルを作成しました。なんらかの理由でこの遅延は14/15秒になります。

私は多くの検索を行っていますが、すべてのトランプを思いついたので、どんな助けもありがとうございます。

var imgshow = function(){ 
    $(".img1").delay(7000).fadeOut(1500, function(){ 
     $(".img2").delay(7000).fadeOut(1500, function(){ 
      $(".img1").delay(7000).fadeIn(1500, function(){ 
       $(".img2").delay(7000).fadeIn(1500, function(){ 
        imgshow(); 
       }); 
      }); 
     }); 
    }); 
} 
imgshow(); 
+0

上記のコードに問題はないようです。 http://jsfiddle.net/egnkgmwr/をチェックしてください(私は10倍の速さでスピードアップしました)。右隅には通話間の秒数があります。 – potatopeelings

+0

こんにちはポテト、フィードバックありがとう。あなたのフィドルを見た後、私は問題を再現できるかどうかを知ることにしました。 https://jsfiddle.net/MichaelCaley/wcoba1jy/ 2番目のループから、最初の広場がフェードアウトに時間がかかります –

+0

ああ。私は問題を見ると思う - 答えをチェックする。乾杯! – potatopeelings

答えて

0

実際にはコード化されていますが(おそらく意図したとおりではありません:-))。起こっているのは、img2がimg1(完全に不透明)の下にあり、img1が2倍長く滞在するため、2番目のfadeInは(視覚的に)効果がないということです。

うまくいけば、次のことが明らかに - 1完全な不透明を示し、0完全に透明示し

  • IMG3(1)IMG2下
  • 示す(1)IMG1下(1)=> IMG1 IMG3(1 IMG1下IMG2(0)下)IMG2下(1)IMG1下(0)=> IMG2示す
  • IMG3(1)(0)=> IMG3示す
  • IMG3(1)IMG2下(0)IMG1下(1)=> img1を表示
  • img1(1)=> iの下でimg3(1)の下にimg3(1) (おそらくIMG2をしたいとき)MG1は、あなたが最後の2 fadeInを交換する場合は、色が変化何か間隔ごと(https://jsfiddle.net/xx303tdc/)を取得しますが、順序はIMG1、IMG2、IMG3なります ...

を示します、img2、img1 ...それ以外の場合は、img1 fadeInの後ろに完全に表示されるようにimg2を設定してから、ループを再起動してください。

いずれにしても、再帰呼び出しを行っているため、最終的にはスタックスペースを使い果たしてしまいます(遅延のため非常に遅いため)。CSS遷移を使用するためにリファクタリングすることをお勧めします。

+0

あなたはまったく正しいので、私があなたの答えを読み終える前に、私は問題を見ることができました。あなたが言及したスタックスペースの問題を参照すると、それはループされた関数の問題ですか?それとも私はそれをやっているはずの方法はありますか? –

+0

これは、終了しない再帰関数には問題がありますが、この場合問題になるとはっきりとは分かりません(通常は7秒の遅延です。ページ)。あなたがバックグラウンドを変更しようとしているのであれば、純粋なCSSで行うことができます。https://jsfiddle.net/mrwq20ct/を参照してください。 – potatopeelings