搜尋

首頁  >  問答  >  主體

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毫秒之後,才進行下一次迴圈嗎?還是不等動畫執行完,就執行下一次迴圈了?

三叔三叔2694 天前925

全部回覆(2)我來回復

  • 巴扎黑

    巴扎黑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);
    }

    於是,動畫的回呼應該是進入任務佇列的,所以循環是先執行的。

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-06-30 10:02:02

    應該是先循環綁定事件,然後同時進行。
    也就是說,在動畫執行之前,先做了循環,給每一個元素都綁定了這個動畫。循環結束之後,所有元素同時進行這個動畫。

    回覆
    0
  • 取消回覆