编辑:我的延迟的想法不起作用,但在循环中,您可以相应地添加.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)
})
现在,如果您需要不断地做到这一点并且您的元素数量是恒定的,您可以使用以下代码
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)