编辑:我与deferreds想法没有工作,但在循环您可以添加.delay(..)
推迟对不同元素的动画相应
看到的jsfiddle http://jsfiddle.net/vittore/Yzpft/
var containers = $('#container-wrap').find('.container')
containers.each(function(ind,el) {
$(el).delay(800 * ind)
.animate({'width': '400px'}, 400)
.animate({'width': '100px'}, 400)
})
现在,如果你需要constanly做没有延迟,你的元素数量不变,你可以使用以下代码
var containers = $('#container-wrap').find('.container')
, length = containers.length
, interval = 800 * length
, intervalVar = null
function animate() {
containers.each(function(ind,el) {
$(el).delay(800 * ind)
.animate({'width': '400px'}, 400)
.animate({'width': '100px'}, 400)
})
})
intervalVar = setInterval(animate, interval)
... and whenever you need to stop it
clearInterval(intervalVar)
你不应该有相同的编号的元素 – 2013-05-08 00:29:15