【发布时间】:2016-03-04 22:31:59
【问题描述】:
我有一个动画循环用于处理单个字母。它被包裹在一个计时器中,以创建一个延迟的偏移量。每个字母比前一个字母晚 100 毫秒。我需要弄清楚如何判断完整动画何时完成,但由于使用的嵌套类型不同,我遇到了一些麻烦。
我尝试了一些不同的方法,包括尝试从动画中返回一个值,然后是计时器,然后是 $.each 函数,但我确定这是关闭的。我还想我也许可以使用 jQuery 的 animate 函数提供的承诺,但不确定如何实现这一点。这里的任何建议将不胜感激:] 谢谢
这是我当前的代码:
var offset = 200;
//drop individual letters down out of view
function dropLetters($letters){
var len = $letters.length - 1;
$letters.each(function(i){
var $letter = $(this);
setTimeout(function(){
$letter.animate({ top: offset + 'px' }, 300, function(){
if( i >= len ){
return $(this).promise();
}
});
}, 100 * i );
});
}
编辑:对不起,我意识到我省略了偏移变量。我把它加回去了——它只是设置为 200。
另外,我意识到这个问题与另一个问题相似,但似乎也有所不同。此处提供的答案提供了其他问题中不存在的几种不同方法。
【问题讨论】:
-
@nem 该示例没有显示一个好的解决方案,因为 OP 在调用
animate前后调用了setTimeout
标签: javascript jquery animation