溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

jquery動(dòng)畫隊(duì)列怎么實(shí)現(xiàn)

發(fā)布時(shí)間:2022-09-09 16:34:53 來(lái)源:億速云 閱讀:133 作者:iii 欄目:web開發(fā)

這篇文章主要介紹“jquery動(dòng)畫隊(duì)列怎么實(shí)現(xiàn)”,在日常操作中,相信很多人在jquery動(dòng)畫隊(duì)列怎么實(shí)現(xiàn)問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”jquery動(dòng)畫隊(duì)列怎么實(shí)現(xiàn)”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

jquery動(dòng)畫隊(duì)列是一個(gè)動(dòng)畫函數(shù)隊(duì)列,把多個(gè)的動(dòng)畫任務(wù)放到一起,確保只有當(dāng)前面的任務(wù)完成了,才會(huì)開始下一個(gè)任務(wù);可以對(duì)jQuery元素應(yīng)用fade、slide、animate等動(dòng)畫,當(dāng)在JQuery對(duì)象上調(diào)用動(dòng)畫方法時(shí),如果對(duì)象正在執(zhí)行某個(gè)動(dòng)畫效果,那么會(huì)把后面的動(dòng)畫效果,放在一個(gè)隊(duì)列里面,然后按順序執(zhí)行動(dòng)畫隊(duì)列里面的每一個(gè)動(dòng)畫。

本文操作環(huán)境:windows10系統(tǒng)、jquery3.6.1版、Dell G3電腦。

jquery動(dòng)畫隊(duì)列是什么意思

隊(duì)列的作用就是讓我們把一個(gè)又一個(gè)的任務(wù)放到一起,確保只有當(dāng)前面的任務(wù)完成了,才會(huì)開始下一個(gè)任務(wù)。這里面的任務(wù)可以是同步的,也可以是異步的。

jQuery的動(dòng)畫系統(tǒng)就是執(zhí)行一個(gè)函數(shù)隊(duì)列。對(duì)jQuery元素應(yīng)用fade,slide,animate等動(dòng)畫,都會(huì)默認(rèn)將函數(shù)壓入一個(gè)fx的隊(duì)列。在我們使用jQuery的animate()的時(shí)候,我們可以在option參數(shù)中傳入一個(gè)queue的標(biāo)志位來(lái)決定這個(gè)動(dòng)畫時(shí)候壓入當(dāng)前元素的動(dòng)畫隊(duì)列。如果為false,則不等待當(dāng)前隊(duì)列完成,而是立即執(zhí)行該動(dòng)畫。

JQuery動(dòng)畫存在一個(gè)隊(duì)列,當(dāng)在JQuery對(duì)象上調(diào)用動(dòng)畫方法時(shí),如果對(duì)象正在執(zhí)行某個(gè)動(dòng)畫效果,那么會(huì)把后面的動(dòng)畫效果,放在一個(gè)隊(duì)列里面,然后按順序執(zhí)行動(dòng)畫隊(duì)列里面的每一個(gè)動(dòng)畫。

$box.hide(1000, function(){
   $box.show(1000, function(){
     $box.fadeOut('slow',function(){
       $box.fadeIn('slow',function(){
         $box.slideUp(function(){
           $box.slideDown(function(){
             console.log('動(dòng)畫執(zhí)行完畢')
           })
         })
       })
     })
   })
})
//等價(jià)于
$box.hide(1000)
    .show(1000)
    .fadeOut()
    .fadeIn()
    .slideUp()
    .slideDown(function(){
      console.log('真的完畢了')
    })

但是有時(shí)動(dòng)畫正在播放的時(shí)候,用戶想要它停止運(yùn)動(dòng),或者用戶在此時(shí)已經(jīng)跳轉(zhuǎn)了網(wǎng)頁(yè),動(dòng)畫已經(jīng)不需要再動(dòng)了,此時(shí)需要對(duì)動(dòng)畫隊(duì)列進(jìn)行一些操作來(lái)滿足需求。

stop([clearQueue], [jumpToEnd]);

stop()這個(gè)函數(shù)可以停止當(dāng)前JQuery對(duì)象里每個(gè)DOM元素正在執(zhí)行的動(dòng)畫。stop有兩個(gè)參數(shù),適用于所有JQuery效果函數(shù),包括滑動(dòng),淡入淡出和自定義動(dòng)畫。(show, hide, toggle并不能算動(dòng)畫, 實(shí)質(zhì)就是css的靜態(tài)效果)

這兩個(gè)參數(shù)的含義分別代表:

  • clearQueue(default: false):是否會(huì)清除動(dòng)畫隊(duì)列

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

jquery動(dòng)畫隊(duì)列怎么實(shí)現(xiàn)

stop(false, false): 當(dāng)參數(shù)都為false時(shí),元素會(huì)立即結(jié)束當(dāng)前的動(dòng)作,不管當(dāng)前動(dòng)畫有沒(méi)有完成,直接跳過(guò)這一步進(jìn)入下一個(gè)隊(duì)列,直到完成隊(duì)列里的所有動(dòng)畫。

jquery動(dòng)畫隊(duì)列怎么實(shí)現(xiàn)

stop(true, false): 當(dāng)參數(shù)為true和false時(shí),說(shuō)明清除了動(dòng)畫隊(duì)列,并且不再繼續(xù)執(zhí)行當(dāng)前未完成的動(dòng)畫。

jquery動(dòng)畫隊(duì)列怎么實(shí)現(xiàn)

stop(true, true): 當(dāng)兩個(gè)參數(shù)都為true時(shí),清除了動(dòng)畫隊(duì)列,但是當(dāng)前動(dòng)畫動(dòng)作直接跳到了完成后的畫面,也就是說(shuō)沒(méi)有了執(zhí)行的過(guò)程直接到了最后狀態(tài)。

jquery動(dòng)畫隊(duì)列怎么實(shí)現(xiàn)

跳到該次動(dòng)作的最后狀態(tài),然后不再執(zhí)行后面的動(dòng)作

finish(): 停止當(dāng)前動(dòng)畫,并清除動(dòng)畫隊(duì)列中所有未完成的動(dòng)畫,最終展示動(dòng)畫隊(duì)列最后一幀的最終狀態(tài)。

jquery動(dòng)畫隊(duì)列怎么實(shí)現(xiàn)

從該位置直接跳到該動(dòng)畫的最后狀態(tài)

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

到此,關(guān)于“jquery動(dòng)畫隊(duì)列怎么實(shí)現(xiàn)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI