jquery動畫隊列

進入主題之前,先看一個例子:

<div class="button">
  <button id="animate">animate</button>
</div>
<div class="box">
  <p>這是box里的內(nèi)容</p>
</div>
<style>
  .box{
    border:2px solid blue;
  }
</style>
<script>
$("#animate").on("click",function(){
  $(".box").animate({
    width: "500px"
  },5000);
  console.log("這是點擊時出現(xiàn)的文字");
});
</script>

為了效果更明顯把将,動畫的時間設(shè)置為5s,可以看出控制臺輸出的文字在點擊按鈕是立即觸發(fā)忆矛,這說明了一個事情察蹲,即動畫方法animate不是同步的,而是異步的催训,這就引申出了動畫隊列洽议。

動畫的執(zhí)行不是同步的,而是加入到動畫隊列中漫拭,這樣就可以實現(xiàn)多個動畫效果連在一起亚兄,構(gòu)成一個連續(xù)的動畫。

queue( [ queueName ], callback( next ) )

queue()方法用來顯示在匹配的元素上的已經(jīng)執(zhí)行的函數(shù)隊列

  • queueName:一個含有隊列名的字符串采驻。默認是fx审胚,標(biāo)準的動畫隊列
  • callback(next):添加到隊列的新函數(shù)
<div class="button">
  <button id="animate">animate</button>
</div>
<div class="box">
  <p>這是box里的內(nèi)容</p>
  <p></p>
</div>
<style>
  .box{
    border:2px solid blue;
  }
</style>
<script>
$("#animate").on("click",function(){
  setInterval(function(){
    $(".box p").last().html("當(dāng)前動畫隊列還有" + $(".box").queue().length);
  },1000);

  $(".box").animate({
    width: "500px"
  },5000).animate({
    height: "500px"
  },5000);

  $(".box").queue(function(){
    $(this).animate({
    width: "50px"
  });
    $(this).css("background","#fff000");
  });

  $(".box").animate({
    width: "200px"
  },5000).animate({
    height: "200px"
  },5000);
  console.log("這是點擊時出現(xiàn)的文字");
});
</script>

如上代碼,queue()方法的返回函數(shù)里animate()沒有執(zhí)行挑宠,css()執(zhí)行了菲盾,后面的兩個animate()也沒有執(zhí)行,這說明了一件事各淀,queue()方法雖然可以給動畫隊列添加新的動畫懒鉴,但是無法自動執(zhí)行,而且會中斷動畫隊列的執(zhí)行。

dequeue([queueName])

dequeue()方法用來執(zhí)行匹配元素隊列的下一個函數(shù)

  • queueName:一個含有隊列名的字符串临谱。默認是fx璃俗,標(biāo)準的動畫隊列
$(".box").queue(function(){
    $(this).animate({
    width: "50px"
  });
    $(this).css("background","#fff000");
    $(this).dequeue();
});

會發(fā)現(xiàn)queue()方法會把回調(diào)函數(shù)里新增的動畫放在動畫隊列的最后去執(zhí)行

clearQueue([queueName])

clearQueue()方法用于清除動畫隊列中未執(zhí)行的動畫悉默,并不影響當(dāng)前動畫效果(即正在進行的動畫不受影響)城豁,當(dāng)重新執(zhí)行時,動畫隊列重新開始抄课,但已經(jīng)執(zhí)行過的隊列唱星,不會再顯示效果

  • queueName:一個含有隊列名的字符串。默認是fx跟磨,標(biāo)準的動畫隊列
<div class="button">
  <button id="animate">animate</button>
  <button id="clearqueue">clearQueue</button>
</div>
<div class="box">
  <p>這是box里的內(nèi)容</p>
  <p></p>
</div>
<style>
  .box{
    border:2px solid blue;
  }
</style>
<script>
$("#animate").on("click",function(){
  setInterval(function(){
    $(".box p").last().html("當(dāng)前動畫隊列還有" + $(".box").queue().length);
  },1000);

  $(".box").animate({
    width: "500px"
  },5000).animate({
    height: "500px"
  },5000);

  $(".box").queue(function(){
    $(this).animate({
    width: "50px"
  });
    $(this).css("background","#fff000");
  });

  $(".box").animate({
    width: "200px"
  },5000).animate({
    height: "200px"
  },5000);
  console.log("這是點擊時出現(xiàn)的文字");
});

$("#clearqueue").on("click",function(){
  $(".box").clearQueue();
});
</script>

finish()

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

$("#finish").on("click",function(){
  $(".box").finish();
});

stop([clearQueue ] [, jumpToEnd ])

停止當(dāng)前正在運行的動畫

  • 參數(shù)為空:停止當(dāng)前動畫抵拘,執(zhí)行動畫隊列中的下一個動畫
  • [clearQueue ]:boolean類型哎榴,停止當(dāng)前正在進行的動畫,清空未執(zhí)行的動畫隊列僵蛛,影響動畫效果
  • [, jumpToEnd ]:boolean類型尚蝌,停止當(dāng)前正在進行的動畫,清空未執(zhí)行的動畫隊列充尉,并直接跳到本次動畫的結(jié)束

具體例子可參考:http://js.jirengu.com/vipeqisike

來源

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末飘言,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子喉酌,更是在濱河造成了極大的恐慌热凹,老刑警劉巖泵喘,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泪电,死亡現(xiàn)場離奇詭異,居然都是意外死亡纪铺,警方通過查閱死者的電腦和手機相速,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鲜锚,“玉大人突诬,你說我怎么就攤上這事∥叻保” “怎么了旺隙?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長骏令。 經(jīng)常有香客問我蔬捷,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任周拐,我火速辦了婚禮铡俐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘妥粟。我一直安慰自己审丘,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布勾给。 她就那樣靜靜地躺著滩报,像睡著了一般。 火紅的嫁衣襯著肌膚如雪播急。 梳的紋絲不亂的頭發(fā)上露泊,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機與錄音旅择,去河邊找鬼惭笑。 笑死,一個胖子當(dāng)著我的面吹牛生真,可吹牛的內(nèi)容都是我干的沉噩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼柱蟀,長吁一口氣:“原來是場噩夢啊……” “哼川蒙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起长已,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤畜眨,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后术瓮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體康聂,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年胞四,在試婚紗的時候發(fā)現(xiàn)自己被綠了恬汁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡辜伟,死狀恐怖氓侧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情导狡,我是刑警寧澤约巷,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站旱捧,受9級特大地震影響独郎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一囚聚、第九天 我趴在偏房一處隱蔽的房頂上張望靖榕。 院中可真熱鬧,春花似錦顽铸、人聲如沸茁计。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽星压。三九已至,卻和暖如春鬼譬,著一層夾襖步出監(jiān)牢的瞬間娜膘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工优质, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留竣贪,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓巩螃,卻偏偏與公主長得像演怎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子避乏,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

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

  • 例子: 為了效果更明顯爷耀,動畫的時間設(shè)置為5s,可以看出控制臺輸出的文字在點擊按鈕是立即觸發(fā)拍皮,這說明了一個事情歹叮,即動...
    博聞強記富內(nèi)斯閱讀 257評論 0 0
  • 隊列實現(xiàn)是jQuery非常棒的一個拓展,使用動畫隊列可以使動畫更容易實現(xiàn)铆帽。 .animate( propertie...
    初入前端的小菜鳥閱讀 281評論 0 0
  • .animate( properties [, duration ] [, easing ] [, complet...
    星火燎原_hx閱讀 127評論 0 0
  • 動畫隊列 隊列的作用就是讓我們把一個又一個的任務(wù)放到一起咆耿,確保只有當(dāng)前面的任務(wù)完成了,才會開始下一個任務(wù)锄贼。這里面的...
    Hsienfeng閱讀 433評論 0 0
  • 隊列 隊列的本質(zhì)是一個數(shù)組票灰,對隊列的理解先從數(shù)組的push和shift開始。push是從數(shù)組尾端插入新的元素宅荤,sh...
    好奇男孩閱讀 1,160評論 0 2