2017-04-13 11 views
1

私は、ボックスをクリックすると、より多くのコンテンツを含む別のビューにスライドするデザインを作成しようとしています。矢印をクリックすると、それが表示されます。最初のアニメーションが終了した後にアニメーションが繰り返されます。どのようにキャンセルするのですか?

問題はこれです:最初の1が完了すると

 $(boxes).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() { 
      boxes.parent().css({ 
       'height' : '0', 
       'opacity' : '0', 
       'overflow' : 'hidden' 
      }); 

      fboxContentCover.css({ 
      'height' : 'auto', 
      'opacity' : '1', 
      }); 

      fboxContentCover.removeClass('fadeOutLeft').addClass('animated bounceInRight'); 
     }); 

     $(fboxContentCover).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() { 

      fboxContentCover.css({ 
       'height' : '0', 
       'opacity' : '0', 
       'overflow' : 'hidden' 
      }); 

      $('.fbox').parent().css({ 
      'height' : 'auto', 
      'opacity' : '1', 
      }); 

      $('.fbox').removeClass('fadeOutLeft').addClass('animated fadeInRight'); 
     }); 

、それが成功した2番目のビューに行くあなたが戻ってクリックすると、しかし、それは再び最初のビューにスライドさせ、それよ2番目のビューをもう一度フラッシュしてから最初のビューに戻ります。

どうしたらいいですか?

コードとすべてがここにある:https://codepen.io/anon/pen/JNodjO

答えて

0

あなた.removeClassが正常に動作していないように見える - クラスが再接続されるように表示されます。

スイッチは、.addClass.removeClassから - >.toggleClassに切り替わります。

あなたのようなシナリオの方が良いです。クラス間の切り替えが容易になるため、名前を

+0

あなたはコードを編集して意味を表示できますか?私のように変更: 'fboxContentCover.toggleClass( 'fadeOutLeftアニメーションbounceInRight');' と 'boxes.toggleClass( 'fadeOutLeftアニメーションfadeInRight');' は、第2のビューアニメーションが起こり、その後、戻っていません、アニメーションは停止します。 – kinx

+0

@kinx私はあなたのためにすべてをすることはできません!しかし、この方法はうまくいくはずです、幸運! –

関連する問題