jquery動畫佇列是什麼意思

2022-09-09 18:00:39

jquery動畫佇列是一個動畫函數佇列,把多個的動畫任務放到一起,確保只有當前面的任務完成了,才會開始下一個任務;可以對jQuery元素應用fade、slide、animate等動畫,當在JQuery物件上呼叫動畫方法時,如果物件正在執行某個動畫效果,那麼會把後面的動畫效果,放在一個佇列裡面,然後按順序執行動畫佇列裡面的每一個動畫。

前端(vue)入門到精通課程:進入學習

本文操作環境:windows10系統、jquery3.6.1版、Dell G3電腦。

jquery動畫佇列是什麼意思

佇列的作用就是讓我們把一個又一個的任務放到一起,確保只有當前面的任務完成了,才會開始下一個任務。這裡面的任務可以是同步的,也可以是非同步的。

jQuery的動畫系統就是執行一個函數佇列。對jQuery元素應用fade,slide,animate等動畫,都會預設將函數壓入一個fx的佇列。在我們使用jQuery的animate()的時候,我們可以在option引數中傳入一個queue的標誌位來決定這個動畫時候壓入當前元素的動畫佇列。如果為false,則不等待當前佇列完成,而是立即執行該動畫。

JQuery動畫存在一個佇列,當在JQuery物件上呼叫動畫方法時,如果物件正在執行某個動畫效果,那麼會把後面的動畫效果,放在一個佇列裡面,然後按順序執行動畫佇列裡面的每一個動畫。

$box.hide(1000, function(){
   $box.show(1000, function(){
     $box.fadeOut('slow',function(){
       $box.fadeIn('slow',function(){
         $box.slideUp(function(){
           $box.slideDown(function(){
             console.log('動畫執行完畢')
           })
         })
       })
     })
   })
})
//等價於
$box.hide(1000)
    .show(1000)
    .fadeOut()
    .fadeIn()
    .slideUp()
    .slideDown(function(){
      console.log('真的完畢了')
    })

但是有時動畫正在播放的時候,使用者想要它停止運動,或者使用者在此時已經跳轉了網頁,動畫已經不需要再動了,此時需要對動畫佇列進行一些操作來滿足需求。

stop([clearQueue], [jumpToEnd]);

stop()這個函數可以停止當前JQuery物件裡每個DOM元素正在執行的動畫。stop有兩個引數,適用於所有JQuery效果函數,包括滑動,淡入淡出和自定義動畫。(show, hide, toggle並不能算動畫, 實質就是css的靜態效果)

這兩個引數的含義分別代表:

  • clearQueue(default: false):是否會清除動畫佇列

  • jumpToEnd(default: false):是否立即完成當前動畫

16.png

stop(false, false): 當引數都為false時,元素會立即結束當前的動作,不管當前動畫有沒有完成,直接跳過這一步進入下一個佇列,直到完成佇列裡的所有動畫。

17.png

stop(true, false): 當引數為true和false時,說明清除了動畫佇列,並且不再繼續執行當前未完成的動畫。

18.png

stop(true, true): 當兩個引數都為true時,清除了動畫佇列,但是當前動畫動作直接跳到了完成後的畫面,也就是說沒有了執行的過程直接到了最後狀態。

19.png

跳到該次動作的最後狀態,然後不再執行後面的動作

finish(): 停止當前動畫,並清除動畫佇列中所有未完成的動畫,最終展示動畫佇列最後一幀的最終狀態。

20.png

從該位置直接跳到該動畫的最後狀態

該方法與 .stop(true,true) 方法類似,不同的是,finish() 也會引起所有排隊動畫的 CSS 屬性停止。

相關教學推薦:

以上就是jquery動畫佇列是什麼意思的詳細內容,更多請關注TW511.COM其它相關文章!