2012-07-23 9 views
8

複数のCSS3アニメーションが1つのdivにリンクされていますが、最後のアニメーションの最後のコールドにしか機能しません。animationEndがanimationNameを介して起動したことを検出します

アニメーションエフェクトを使用して前記の機能をトリガーできるようにしましたが、私が言ったように、最後のアニメーションでのみ実行するようにしました。

animationEndイベントをトリガしたアニメーションの名前を確認して、アニメーションの検出方法が終了しましたか?

私は最後のアニメーションを取り除くためにifステートメントを使用できます。

+0

あなたはあなた自身の質問に答えました:アニメーションの名前を確認してください(アニメーション終了イベント)(http://www.w3.org/TR/css3-animations/#animation-events)を参照してください。 –

+1

if(event.animationName === "myAnimation")... ' –

+0

Argh!私はもっ​​と愚かに感じることができませんでした。この夏の熱でなければなりません。 Thankyou Ray – Damon

答えて

7

このパラメータは、この機能を定義するときに必要です。いずれもうまくいくはずです。

var $element = $('.eye').bind("webkitAnimationEnd oAnimationEnd msAnimationEnd animationend", function(event){ 
    if (event.originalEvent.animationName === "three") { 
     console.log('the event happened'); 
    } 
} 

あるいは、

var $element = $('.eye').bind("webkitAnimationEnd oAnimationEnd msAnimationEnd animationend", function(e){ 
    if (e.originalEvent.animationName === "three") { 
     console.log('the event happened'); 
    } 
} 
+0

既に試したことがありますか?Mr Clegg – Damon

+0

私はあなたがそのような複数の条件をバインドできるとは思わない。これは役に立ちますか?:http://jsfiddle.net/HeX5E/ – mattclegg

5

なぜ私にはわからない...しかし、私は唯一のe.originalEvent.animationName

animationNameをキャッチすることができますので、最良のオプションは次のとおりです。

function getAnimationName(e) { 
    if(e.animationName != undefined) return e.animationName; 
    if(e.originalEvent.animationName != undefined) return e.originalEvent.animationName; 
    else return undefined; 
} 
+1

jQueryを使用している場合、イベントはすべてjQueryであると考えられますので、元のイベントにアクセスしてanimationNameプロパティを見つけなければなりません。 –

関連する問題