JavaScript:如何根据时间计算动画持续时间?

JavaScript:如何根据时间计算动画持续时间?,javascript,Javascript,例如,如果我有: el.animate([keyFrame100,keyFrame0],{duration:600,ease:'ease in'}) 在动画完成后,如何确定动画的持续时间以执行某些操作 或者,有没有一种方式可以订阅动画的结束?我的用例是,我希望在动画完成后关闭一个对话框: setTimeout(() => ref.close(dialogResult), 550); 函数在调用时返回的实例 每个动画实例都包含一个触发的onfinish事件处理程序: 像这样的事件驱动方法的

例如,如果我有:

el.animate([keyFrame100,keyFrame0],{duration:600,ease:'ease in'})

在动画完成后,如何确定动画的持续时间以执行某些操作

或者,有没有一种方式可以订阅动画的结束?我的用例是,我希望在动画完成后关闭一个对话框:

setTimeout(() => ref.close(dialogResult), 550);
函数在调用时返回的实例

每个
动画
实例都包含一个触发的
onfinish
事件处理程序:

像这样的事件驱动方法的好处是,您不需要跟踪动画的持续时间来决定动画何时完成(以及何时运行“finish”代码)。相反,我们将其委托给API,该API在内部跟踪并确定何时触发
onfinish
事件


希望有帮助

什么是
animate()
?纯js动画功能
// Store animation object in "animation" variable
const animation = el.animate(
    [keyFrame100, keyFrame0], 
    { 
        duration: 600, 
        easing: 'ease-in' 
    });

// Attach a function that is executed when animation is completed
animation.onfinish = () => {

    // Runs when animation completed
    ref.close(dialogResult)
}