Aar*_*ron 2 javascript jquery callback jquery-animate
我在这里看到了几个关于这个的问题,(包括使用when/promise解决方案),但它们似乎没有用.基本上我一次动画多个元素,并在回调中调用一个函数,但函数被多次调用 - 对于每个被动画化的元素...这是我的代码:
OBJCollection.css({
'width': '0em',
'height': '0em'
}).animate({
'width': Screens.ImageW / 16 + 'em',
'height': Screens.ImageH / 16 + 'em'
}, {
duration: Screens.currentImageParent.data('LightboxFadeSpeedIn'),
queue: false,
step: function (now, fx) {
componentScaler();
},
complete: function () {
$Content.show('fade', Screens.currentImageParent.data('ContentFadeSpeedIn'));
//calling function here
}
});
Run Code Online (Sandbox Code Playgroud)
我试过了:
if (!OBJCollection.is(':animated')) { ... call function }
Run Code Online (Sandbox Code Playgroud)
这没用.我也尝试过使用when的解决方案,但这似乎抛弃了我的函数调用(根据OBJCollection的最终动画大小定位其他元素).我不确定(因为这是我第一次使用/ promise),但是在第一个项目完成动画并忽略所有其他项目后,它是否会触发一次回调?看起来这就是它正在做的事情,但我正在寻找一个解决方案,当所有项目完成动画时触发回调....
有任何想法吗?
使用promise对象.
OBJCollection.css({
'width': '0em',
'height': '0em'
}).animate({
'width': Screens.ImageW / 16 + 'em',
'height': Screens.ImageH / 16 + 'em'
}, {
duration: Screens.currentImageParent.data('LightboxFadeSpeedIn'),
queue: false,
step: function(now, fx) {
componentScaler();
}
}).promise().done(function() {
$Content.show('fade', Screens.currentImageParent.data('ContentFadeSpeedIn'));
//calling function here
});?
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
872 次 |
| 最近记录: |