語(yǔ)法
jQuery 1.2 新增該函數(shù)。queue()函數(shù)具有如下兩種用法:
用法一:
如果沒(méi)有指定任何參數(shù)或只指定了queueName參數(shù),則表示獲取指定名稱(chēng)的函數(shù)隊(duì)列。如果指定了newQueue參數(shù),則表示使用新的隊(duì)列newQueue設(shè)置(替換)當(dāng)前隊(duì)列中的所有內(nèi)容。
用法二:
將指定的函數(shù)添加到指定的隊(duì)列(末尾)。
注意:queue()函數(shù)的所有設(shè)置操作針對(duì)當(dāng)前jQuery對(duì)象所匹配的每一個(gè)元素;所有讀取操作只針對(duì)第一個(gè)匹配的元素。
參數(shù)
請(qǐng)根據(jù)前面語(yǔ)法部分所定義的參數(shù)名稱(chēng)查找對(duì)應(yīng)的參數(shù)。
queueName:可選/String類(lèi)型指定的隊(duì)列名稱(chēng),默認(rèn)為"fx"(表示jQuery中的標(biāo)準(zhǔn)動(dòng)畫(huà)效果隊(duì)列)。
newQueue:可選/Array類(lèi)型用于替換當(dāng)前隊(duì)列內(nèi)容的新隊(duì)列。
callback:Function類(lèi)型指定的函數(shù),將會(huì)追加到隊(duì)列中。該函數(shù)有一個(gè)函數(shù)參數(shù),調(diào)用該參數(shù)可以移除并執(zhí)行隊(duì)列中的第一個(gè)函數(shù)。
返回值
queue()函數(shù)的返回值是Array/jQuery類(lèi)型,返回值的類(lèi)型取決于當(dāng)前queue()函數(shù)執(zhí)行的是獲取操作還是設(shè)置操作。
如果queue()函數(shù)執(zhí)行的是設(shè)置操作(替換隊(duì)列、追加函數(shù)),則返回當(dāng)前jQuery對(duì)象本身;如果是獲取操作,則返回獲取到的函數(shù)隊(duì)列(數(shù)組)。
如果當(dāng)前jQuery對(duì)象匹配多個(gè)元素,讀取數(shù)據(jù)時(shí),queue()函數(shù)只以其中第一個(gè)匹配的元素為準(zhǔn)。
實(shí)例:
1. jQuery為我們提供了queue()函數(shù),來(lái)把你需要的某些代碼插入到某個(gè)隊(duì)列中
2. 自定義隊(duì)列
但就這段代碼而已,待你真正添加進(jìn)網(wǎng)頁(yè),并且嘗試運(yùn)行,會(huì)發(fā)現(xiàn)并非“所見(jiàn)即所得”,壓根就不會(huì)有任何效果。
修改后:
一般對(duì)與dequeue()的定義是“刪除隊(duì)列中最頂部的函數(shù),并且執(zhí)行它”。我并不贊同用“刪除”這個(gè)字眼,而是傾向于“取出”,其實(shí)這個(gè)函數(shù)的功能就好像是一個(gè)數(shù)據(jù)結(jié)構(gòu)中隊(duì)列的指針,待隊(duì)列中前一個(gè)函數(shù)執(zhí)行完后,取下一個(gè)隊(duì)列最頂端的函數(shù)。
3. queue: false
前1000毫秒,只有控制高度的“fx”隊(duì)列執(zhí)行,而后1000毫秒,控制不透明度的“fader”隊(duì)列和控制高度的“fx”并行。這里的并行就是queue:false
4. 獲取隊(duì)列長(zhǎng)度
比如用隊(duì)列名取得匹配元素的長(zhǎng)度:
很明顯,就是取得隊(duì)列名為'fx'的隊(duì)列,如果想取得長(zhǎng)度的話:
注意這里的隊(duì)列長(zhǎng)度只是匹配元素還未運(yùn)行的隊(duì)列長(zhǎng)度,當(dāng)動(dòng)畫(huà)運(yùn)行完之后,隊(duì)列長(zhǎng)度會(huì)自動(dòng)歸為0
5.替換隊(duì)列
這里定義了兩個(gè)隊(duì)列,一個(gè)是慢隊(duì)列,也就是默認(rèn)的'fx',另一個(gè)是快隊(duì)列'fx2'
當(dāng)點(diǎn)擊某個(gè)按鈕時(shí):
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com