搜索

首页  >  问答  >  正文

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毫秒之后,才进行下一次循环吗?还是不等动画执行完,就执行下一次循环了?

三叔三叔2739 天前957

全部回复(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
  • 取消回复