動畫隊列

隊列

  • 隊列的本質(zhì)是一個數(shù)組,對隊列的理解先從數(shù)組的push和shift開始靠益。push是從數(shù)組尾端插入新的元素丧肴,shift是從數(shù)組首端刪除元素;分別對應隊列中得queue和dequeue捆毫。
  • jquery所有動畫基于animate方法闪湾,而animate的動畫默認保存在名為fx的動畫隊列中。
  • queue就是將動畫放進隊列中绩卤,dequeue就是將動畫從隊列中刪除并執(zhí)行它途样。

jQuery : queue() 方法

queue() 方法顯示或操作在匹配元素上執(zhí)行的函數(shù)隊列

.queue(queueName,newQueue)

queueName 可選。字符串值濒憋,包含序列的名稱何暇。默認是 fx, 標準的效果序列。
每個元素均可擁有一到多個由 jQuery 添加的函數(shù)隊列凛驮。在大多數(shù)應用程序中裆站,只使用一個隊列(名為 fx)。

動畫隊列

隊列運行在元素上異步地調(diào)用動作序列黔夭,而不會終止程序執(zhí)行宏胯。典型例子時調(diào)用元素上的多個動畫方法。例如:

$('#foo').slideUp()
         .fadeIn();

它的執(zhí)行順序是元素先slideUp后再fadeIn本姥,slideUp和fadeIn有先后順序肩袍。jquery會默認地將它們放進名為fx的隊列中,我們可以這樣認為:

var fx = [slideUp, fadeIn];

//相當于
$('#foo').queue('fx', fx);

//第一步:出列第一個元素slideUp并執(zhí)行它
$('#foo').dequeue('fx');    //fx = ['inprogress', fadeIn]

//第二步:出列第二個元素fadeIn并執(zhí)行它
$('#foo').dequeue('fx');    //fx = ['inprogress']

//第三步婚惫,隊列fx為空氛赐,動畫執(zhí)行完畢
fx = [];

通過不斷的dequeue,fx每個元素逐個依次出列執(zhí)行先舷,直至隊列沒有元素艰管。
也可以這樣理解

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

注意:

  • 當通過 .queue() 添加函數(shù)時,我們應當確保最終調(diào)用了 .dequeue()蒋川,這樣下一個排隊的函數(shù)才能執(zhí)行
  • 當這樣寫代碼時:
  $('#foo').slideUp().fadeIn().css({'width':'200px'});

它的執(zhí)行順序是元素寬度馬上變成200px的同時牲芋,slideUp也在執(zhí)行,slideUp執(zhí)行完后再執(zhí)行fadeIn

自定義動畫

簡單的動畫不能滿足需求的時候捺球,jquery提供了自定義動畫行為的方法

.animate( properties [, duration ] [, easing ] [, complete ] )

properties是一個CSS屬性和值的對象,動畫將根據(jù)這組對象移動街图。

$('#btn').click(function() {
  $('#foo').animate({
    opacity: 0.25,
    left: '+=50',
  }, 5000, function() {
    console.log('執(zhí)行完畢')
  });
});

.clearQueue

清除動畫隊列中未執(zhí)行的動畫

.finish

停止當前動畫,并清除動畫隊列中所有未完成的動畫,最終展示動畫隊列最后一幀的最終狀態(tài)

.stop( [clearQueue ] [, jumpToEnd ] )

停止當前正在運行的動畫
clearQueue(default: false)
jumpToEnd(default: false)

    $('#btn6').click(function(){
      //停止當前動畫
      $('.box').stop()
    })
    $('#btn7').click(function(){
      //停止當前動畫懒构,并清除未執(zhí)行的動畫隊列
      $('.box').stop(true, false)
    })
    $('#btn8').click(function(){
      //停止當前動畫,并清除未執(zhí)行的動畫隊列耘擂,并且當前動畫展示最終狀態(tài)
      $('.box').stop(true, true)
    })
    $('#btn9').click(function(){
      //停止當前動畫胆剧,并清除未執(zhí)行的動畫隊列,并且當前動畫展示最終狀態(tài)
      $('.box').finish()
    })
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市秩霍,隨后出現(xiàn)的幾起案子篙悯,更是在濱河造成了極大的恐慌,老刑警劉巖铃绒,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸽照,死亡現(xiàn)場離奇詭異,居然都是意外死亡颠悬,警方通過查閱死者的電腦和手機矮燎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赔癌,“玉大人诞外,你說我怎么就攤上這事≡制保” “怎么了峡谊?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長刊苍。 經(jīng)常有香客問我既们,道長,這世上最難降的妖魔是什么正什? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任啥纸,我火速辦了婚禮,結果婚禮上埠忘,老公的妹妹穿的比我還像新娘脾拆。我一直安慰自己,他們只是感情好莹妒,可當我...
    茶點故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布名船。 她就那樣靜靜地躺著,像睡著了一般旨怠。 火紅的嫁衣襯著肌膚如雪硼控。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天陷谱,我揣著相機與錄音惧浴,去河邊找鬼。 笑死爽哎,一個胖子當著我的面吹牛蜓席,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播课锌,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼厨内,長吁一口氣:“原來是場噩夢啊……” “哼祈秕!你這毒婦竟也來了?” 一聲冷哼從身側響起雏胃,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤请毛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瞭亮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體方仿,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年统翩,在試婚紗的時候發(fā)現(xiàn)自己被綠了仙蚜。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡唆缴,死狀恐怖鳍征,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情面徽,我是刑警寧澤艳丛,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站趟紊,受9級特大地震影響氮双,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜霎匈,卻給世界環(huán)境...
    茶點故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一戴差、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧铛嘱,春花似錦暖释、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至帖烘,卻和暖如春亮曹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背秘症。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工照卦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人乡摹。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓役耕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親聪廉。 傳聞我的和親對象是個殘疾皇子瞬痘,可洞房花燭夜當晚...
    茶點故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 隊列 隊列的本質(zhì)是一個數(shù)組氏义,對隊列的理解先從數(shù)組的push和shift開始。push是從數(shù)組尾端插入新的元素图云,sh...
    好奇男孩閱讀 1,160評論 0 2
  • 隊列實現(xiàn)是jQuery非常棒的一個拓展,使用動畫隊列可以使動畫更容易實現(xiàn)邻邮。 .animate( propertie...
    初入前端的小菜鳥閱讀 281評論 0 0
  • 動畫 jQuery提供了幾種動畫的操作方法竣况。 .hide([duration ] [,easing ] [,com...
    西紅柿w閱讀 220評論 0 0
  • 動畫隊列 隊列的作用就是讓我們把一個又一個的任務放到一起,確保只有當前面的任務完成了筒严,才會開始下一個任務丹泉。這里面的...
    Hsienfeng閱讀 436評論 0 0
  • 在奔馳的列車上摹恨。 要走十好幾個小時,再轉(zhuǎn)一趟40分鐘的短途火車娶视,才能到達兒子的新學校晒哄。兒子執(zhí)意要坐硬座(昨天自己去...
    我是秦簡閱讀 318評論 1 2