Javascript 如何知道Snabbt的动画何时完成?

Javascript 如何知道Snabbt的动画何时完成?,javascript,Javascript,我正在尝试动画库陷阱 我很享受将动画从内容中分离出来的轻松,但是在做其他事情之前,如何等待动画完成呢?我认为它没有任何回调,所以没有办法等待回调 我有一个使用元素类作为选择器的函数。我用Snabbt为它们设置动画,但我想在动画完成后做些其他事情 function _pulseAllItems() { // Fade in and out all elements with 'item' class snabbt(document.querySelectorAll('.item'), {

我正在尝试动画库陷阱

我很享受将动画从内容中分离出来的轻松,但是在做其他事情之前,如何等待动画完成呢?我认为它没有任何回调,所以没有办法等待回调

我有一个使用元素类作为选择器的函数。我用Snabbt为它们设置动画,但我想在动画完成后做些其他事情

function _pulseAllItems() {
  // Fade in and out all elements with 'item' class
  snabbt(document.querySelectorAll('.item'), {
    fromOpacity: 0,
    opacity: 1,
    duration: 500,
    springConstant: 1.9,
    springDeceleration: 0.9,
    delay: function(i) {
      return i * 50;
    }
  }).snabbt({
    fromOpacity: 1,
    opacity: 0,
    duration: 500,
    springConstant: 1.9,
    springDeceleration: 0.9,
    delay: function(i) {
      return i * 50;
    }
  });
  // After they have all 'pulsed' do something else.
}
我真的不想使用定时器功能,希望有办法知道它何时完成

function _pulseAllItems() {
  // Fade in and out all elements with 'item' class
  snabbt(document.querySelectorAll('.item'), {
    fromOpacity: 0,
    opacity: 1,
    duration: 500,
    springConstant: 1.9,
    springDeceleration: 0.9,
    delay: function(i) {
      return i * 50;
    }
  }).snabbt({
    fromOpacity: 1,
    opacity: 0,
    duration: 500,
    springConstant: 1.9,
    springDeceleration: 0.9,
    delay: function(i) {
      return i * 50;
    }
  });
  // After they have all 'pulsed' do something else.
}
提前感谢您的帮助:)

更新 谢谢!我在您提到的文档附近发现了allDone函数,它非常有用

这是一个小小的更新,但我想在这里添加函数:

function _pulseAllItems() {
  snabbt(document.querySelectorAll('.item'), {
    fromOpacity: 0,
    opacity: 1,
    duration: 500,
    springConstant: 1.9,
    springDeceleration: 0.9,
    delay: function(i) {
      return i * 50;
    }
  }).snabbt({
    fromOpacity: 1,
    opacity: 0,
    duration: 500,
    springConstant: 1.9,
    springDeceleration: 0.9,
    delay: function(i) {
      return i * 50;
    },
    allDone: function(){
      // Do things after animation finish...
    }
  });

}您可以使用文档中显示的回调函数。查看“complete”函数回调。你可以这样做

     snabbt(element, {
        position: [100, 0, 0],
        rotation: [Math.PI, 0, 0],
        easing: 'ease',
        complete: function(index, total){
          //do something here
        }
    });
希望有帮助


谢谢你的想法;“allDone”函数正是我想要的。

Hi-Paras,您所指的文档中指出,列表中的每个项目都会调用它。我需要知道什么时候全部完成。感谢您的评论:)我将尝试并查看“alldone”函数-因此感谢您向我指出文档中的这一部分:)文档中还包含一些用于项目序列的内容。项目序列用于动画序列。