$("#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毫秒之後,才進行下一次迴圈嗎?還是不等動畫執行完,就執行下一次迴圈了?
巴扎黑2017-06-30 10:02:02
each主要只是遍歷,沒有非同步調用的操作,而animate的動畫主要還是用的延遲也就是非同步。
http://www.zhangyunling.com/2...
這好比:
for(var i=0;i<100;i++){
setTimeout(function(){
console.log('一次延迟回调');
},1000);
}
於是,動畫的回呼應該是進入任務佇列的,所以循環是先執行的。
淡淡烟草味2017-06-30 10:02:02
應該是先循環綁定事件,然後同時進行。
也就是說,在動畫執行之前,先做了循環,給每一個元素都綁定了這個動畫。循環結束之後,所有元素同時進行這個動畫。