如何在Javascript animate API(动画)和下面的代码之间添加一个时间间隔
How to add a time interval between Javascript animate API(the animation) and the following code
#Javascript的官方动画引擎
我知道这听起来很蠢,但我找不到任何关于动画 API 的文档(youtube 上没有,google 上没有,堆栈溢出上没有),所以这里是相关代码
if(secondary[0].style.display == "inline-block"){
for(let i=0;i<secondary.length;i++){
secondary[i].animate([
{transform:"scale(1)",offset:0},
{transform:"scale(0.7)",offset:0.3},
{transform:"scale(0.3)",offset:0.7},
{transform:"scale(0)",offset:1}
],{
origin:'top',
duration:2000,
easing:"ease-in-out",
fill:"forwards"
})
};
}
我的问题是,如果我添加额外的代码,动画不会发生,因为额外的代码会立即执行,正如我提到的,我找不到关于动画的任何信息 API,所以我想知道如何让我的动画先完成,然后再执行其余代码。
(如果您想知道我只想在动画后显示 div none)
if(secondary[0].style.display == "inline-block"){
for(let i=0;i<secondary.length;i++){
secondary[i].animate([
{transform:"scale(1)",offset:0},
{transform:"scale(0.7)",offset:0.3},
{transform:"scale(0.3)",offset:0.7},
{transform:"scale(0)",offset:1}
],{
origin:'top',
duration:2000,
easing:"ease-in-out",
fill:"forwards"
})
};
for(let i=0;i<secondary.length;i++){ //this code doesn't allow the animation to finish
secondary[i].style.display = "none";
}
}
在此先感谢您的帮助。
抱歉,如果我的问题很简单,我就是找不到任何文档
JavaScript 有 onFinish 处理程序。请尝试此代码段。
var anim = secondary[i].animate([
{transform:"scale(1)",offset:0},
{transform:"scale(0.7)",offset:0.3},
{transform:"scale(0.3)",offset:0.7},
{transform:"scale(0)",offset:1}
],{
origin:'top',
duration:2000,
easing:"ease-in-out",
fill:"forwards"
});
anim.onfinish = function() {
secondary[i].style.display = "none";
}
#Javascript的官方动画引擎
我知道这听起来很蠢,但我找不到任何关于动画 API 的文档(youtube 上没有,google 上没有,堆栈溢出上没有),所以这里是相关代码
if(secondary[0].style.display == "inline-block"){
for(let i=0;i<secondary.length;i++){
secondary[i].animate([
{transform:"scale(1)",offset:0},
{transform:"scale(0.7)",offset:0.3},
{transform:"scale(0.3)",offset:0.7},
{transform:"scale(0)",offset:1}
],{
origin:'top',
duration:2000,
easing:"ease-in-out",
fill:"forwards"
})
};
}
我的问题是,如果我添加额外的代码,动画不会发生,因为额外的代码会立即执行,正如我提到的,我找不到关于动画的任何信息 API,所以我想知道如何让我的动画先完成,然后再执行其余代码。 (如果您想知道我只想在动画后显示 div none)
if(secondary[0].style.display == "inline-block"){
for(let i=0;i<secondary.length;i++){
secondary[i].animate([
{transform:"scale(1)",offset:0},
{transform:"scale(0.7)",offset:0.3},
{transform:"scale(0.3)",offset:0.7},
{transform:"scale(0)",offset:1}
],{
origin:'top',
duration:2000,
easing:"ease-in-out",
fill:"forwards"
})
};
for(let i=0;i<secondary.length;i++){ //this code doesn't allow the animation to finish
secondary[i].style.display = "none";
}
}
在此先感谢您的帮助。
抱歉,如果我的问题很简单,我就是找不到任何文档
JavaScript 有 onFinish 处理程序。请尝试此代码段。
var anim = secondary[i].animate([
{transform:"scale(1)",offset:0},
{transform:"scale(0.7)",offset:0.3},
{transform:"scale(0.3)",offset:0.7},
{transform:"scale(0)",offset:1}
],{
origin:'top',
duration:2000,
easing:"ease-in-out",
fill:"forwards"
});
anim.onfinish = function() {
secondary[i].style.display = "none";
}