2015-01-12 2 views
0

в конце первой анимации Я добавляю новый класс с новой анимацией, как я могу прослушать вторую анимацию?Слушайте Javascript несколько анимаций CSS

function animate() { 
     $ask.one('webkitAnimationEnd oanimationend msAnimationEnd animationend', function(e) { 
      $ask.removeClass('bounceIn').wait(2000).addClass('flipOutY'); 
      //after flipOutY I want to initScene();     
     }); 
    } 

После flipOutY анимации ее закончил, я хочу стрелять initScene, как я могу слушать каждый анимации на $ спрашиваешь?

+0

можете ли вы сделать jsfiddle для просмотра существующего кода? –

+0

Заменить "one" на "find"? –

ответ

1

Вы могли бы попробовать, как так

function animate() { 
    var evtAnim = "webkitAnimationEnd oanimationend msAnimationEnd animationend"; 

    /* use on() instead of one() */ 
    $ask.on(evtAnim, function(e) { 

     /* is it the first animation? */ 
     if ($ask.hasClass('bounceIn')) { 
      $ask.removeClass('bounceIn').wait(2000).addClass('flipOutY'); 
     } 
     else { 
      /* unbind events and call initScene() */ 
      $ask.off(evtAnim); 
      initScene(); 
     } 
    }); 
} 
1

Если вы хотите выполнить какую-либо функцию после задержки, вы можете использовать $(el).trigger для имитации пользовательского события, и добавить обработчик к этому событию, как это:

$ask.one('...', function(){ 
    $ask.removeClass('bounceIn') 
     .wait(2000) 
     .addClass('flipOutY') 
     .trigger('myCustomEvent'); 
}); 

$ask.on('myCustomEvent', initScene); 
//       ^^^ 
//     call initScene() when myCustomEvent is triggered 
Смежные вопросы