文章详情页
javascript - jQuery中的each函数遍历与animate函数一起使用的时候,执行过程是怎样的?
问题描述
$('#banner ul li').each(function(i){ $(this).animate({width: arrW[index], height: arrH[index],opacity: arrO[index],left: arrL[index],top: arrT[index] },500)}
我不理解的是,当每循环一次的时候,动画的执行要500ms,那是等动画执行结束,也就是500毫秒之后,才进行下一次循环吗?还是不等动画执行完,就执行下一次循环了?
问题解答
回答1:each主要只是遍历,没有异步调用的操作,而animate的动画主要还是用的延迟也就是异步。
http://www.zhangyunling.com/2...
这好比:
for(var i=0;i<100;i++){ setTimeout(function(){console.log(’一次延迟回调’); },1000);}
于是,动画的回调应该是进入任务队列的,所以循环是先执行的。
回答2:应该是先循环绑定事件,然后同时进行。也就是说,在动画执行之前,先做了循环,给每一个元素都绑定了这个动画。循环结束之后,所有元素同时进行这个动画。
标签:
JavaScript
排行榜