2017-06-24 3 views
0

私は、自分のポジションではなく、自分の「スライド」のそれぞれの高さでプレイすることを除いて、fullPage.jsプラグインエフェクトのコピーを作成しようとしています。私の関数は "if"で最初にうまく動作しますが、 "else if"に到達すると実行を停止します。なぜ誰かがこれをやっているのか、何か光を当てることができますか?コールバック関数の実行後にコールバック関数は、関数の前に実行されるので、もしcurrentSlide == 2 && isAnimatingは、このロジック・ブロックは、内のコード、その後、実行に住んでいることを、真なることはありませんようになぜ私のjQuery関数はsetTimeoutを追加した後に "else if"で停止しますか?

あなたの例では、コードに基づいて
if (currentSlide == 1) { 

$("#slide-1").addClass("next-slide"); 
isAnimating = true; 

setTimeout(function(){ 
    isAnimating = false; 
    currentSlide++; 
    console.log(currentSlide); 
    console.log(isAnimating); 
}, 900) 

} else if ((currentSlide == 2) && (isAnimating)) { 

alert(); 
$("#slide-2").addClass("next-slide"); 
currentSlide++; 
console.log('Current slide is: ' + currentSlide); 

} 
+0

これは奇妙なアーキテクチャのようですが、このコードを実行しているときは?より大きな文脈、おそらくコードペインを投稿できますか? – mystrdat

+0

問題があればelseのisAnimating条件が賭けられるでしょう。スライド1でfalseに設定されていることを明確に示しています。他に何が起きているかを知るためのコンテキストがないことが条件となります。 – Chase

+0

https://codepen.io/alexyap/pen/KqvGWz?editors=0011私のcodepenを追加するのを忘れてしまったことについて申し訳ありません。とにかく、isAnimating変数の目的は、slide-1が中断されることなくslide-2は、それがなければslide-1がまだアニメーション化(スライドアップ)している間でもslide-2が上にスライドするため、 –

答えて

0

、それが見えますelse ifは実行されません。

関連する問題