jQuery animate隊列是jQuery中非常常用的一種動畫方式,它能夠讓對象以流暢的方式移動,而不是瞬間移動。animate() 方法允許我們創建基于隊列的動畫。它不只是在初始值和終止值之間進行平滑的運動,還可以隊列化多個動畫,使得它們按照指定的順序依次執行。
//基本的 jQuery 動畫語法 $(selector).animate({params},speed,callback); // 示例代碼 $("button").click(function(){ $("div").animate({left: '250px'}, 2000); $("div").animate({fontSize: '4em'}, 2000); $("div").animate({height: '+=100px'}, 2000); });
上述示例代碼中,三個動畫將依次執行,在第一個動畫執行完畢后才開始第二個動畫,以此類推。當需要在同一個div元素上執行多個動畫,且所有動畫都需要在同一時間開始,我們需要使用隊列技術。
//將隊列中的動畫清空,并停止當前正在進行的動畫 $("div").stop(); //將一個新的動畫添加到隊列中 $("div").animate({left: '250px'}, 2000).queue(function(){ $("div").addClass("blue"); $(this).dequeue(); //執行下一個動畫 }); $("div").animate({fontSize: '4em'}, 2000); //創建一個新的隊列 $("button").click(function(){ var newQueue = $({}); //在空jQuery對象上創建隊列 newQueue.queue(function(){ $("div").animate({left: '250px'}, 2000); $(this).dequeue(); //執行下一個動畫 }); newQueue.queue(function(){ $("div").animate({fontSize: '4em'}, 2000); $(this).dequeue(); }); newQueue.queue(function(){ $("div").animate({height: '+=100px'}, 2000); $(this).dequeue(); }); newQueue.dequeue(); //執行隊列中的第一個動畫 });
在上述代碼中,我們首先使用stop()方法停止當前正在執行的動畫。接下來,我們使用queue()方法將一個新的動畫添加到隊列中。在隊列中的所有動畫執行完畢后,我們使用dequeue()方法執行下一個動畫。我們還可以使用一個空jQuery對象來創建一個新的隊列,使得我們可以將多個動畫按照指定的順序添加到隊列中,并執行隊列中的第一個動畫。