owned mediaウェブ制作に役立つコンテンツを発信中!

jQueryでCSSアニメーションが終わったタイミングのイベントでの実行

アニメーション関連のネタが続いていますが、合わせて使える結構便利なものがあったので忘れないうちに残しておきたいと思います。CSSで設定したanimationやtransitionなどのアニメーションが終了したタイミングで、何かを実行したいときに使えるものになります。   jQueryを使って実現できるのですが、jQueryが使えない場合でもJavaScriptで出来ますので合わせて紹介します。CSSで設定している対象プロパティが「animation」か「transition」で異なりますが大体同じです。コードはこんな感じになります。 【jQueryあり】
// animationプロパティの場合
$("#target_obj").on('animationend webkitAnimationEnd',function(){
  // CSSのanimationプロパティで設定したものが終了した時に実行する内容 
});

// transitionプロパティの場合
$("#target_obj").on('transitionend webkitTransitionEnd',function(){
  // CSSのtransitionプロパティで設定したものが終了した時に実行する内容
});
  どちらもonイベントでの引数に設定しますが、旧ブラウザ対応に合わせてベンダープレフィックスをつけます。CSSの時とは違い、ハイフンは使わずキャメルケースでの記述になります。   またjQueryが使えない時は以下のような形で対応します。addEventListenerは複数のイベントを設定できないので続けて書くことになります。 【jQuery無し】
// animationプロパティの場合
var targetObj = document.getElementById('target_obj');
targetObj.addEventListener('animationend', function() {
  // CSSのanimationプロパティで設定したものが終了した時に実行する内容
});
targetObj.addEventListener('webkitAnimationEnd', function() {
  // CSSのanimationプロパティで設定したものが終了した時に実行する内容
});

// transitionプロパティの場合
var targetObj = document.getElementById('target_obj');
targetObj.addEventListener('transitionend', function() {
  // CSSのtransitionプロパティで設定したものが終了した時に実行する内容
});
targetObj.addEventListener('webkitTransitionEnd', function() {
  // CSSのtransitionプロパティで設定したものが終了した時に実行する内容
});
  いかがでしょうか、CSSアニメーションとjavascriptを合わせて使えることでいろんな可能性が広がるのではないでしょうか。   (参考にさせて頂いたサイト様) CSSアニメーションの終了に合わせて処理を行いたい
  • はてなブックマーク
  • Pocket
  • Linkedin
  • Feedly

この記事を書いた人

Twitter

sponserd

    keyword search

    recent posts

    • Twitter
    • Github
    contact usscroll to top
      • Facebook
      • Twitter
      • Github
      • Instagram