深入學習jQuery動畫隊列

来源:http://www.cnblogs.com/xiaohuochai/archive/2016/10/13/5958082.html
-Advertisement-
Play Games

[1]queue() [2]dequeue() [3]clearQueue() ...


前面的話

  隊列實現是jQuery非常棒的一個拓展,使用動畫隊列可以使動畫更容易實現。本文將詳細介紹jQuery動畫隊列

 

queue()

  queue()方法用來顯示在匹配的元素上的已經執行的函數隊列

queue([queueName])

  queue()方法可以接受一個可選參數——一個含有隊列名的字元串。該參數預設是'fx'

<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<button id="btn">開始動畫</button>
<button id="reset">恢復</button>
<span id="result"></span>
<div id="box" style="position:relative;height: 100px;width: 300px;background-color: lightblue"></div>
<script>
$('#reset').click(function(){
    history.go();
})
$('#btn').click(function(event){
    setInterval(function(){
        $('#result').html('隊列數是:' +$('#box').queue().length)
    },100)
  $('#box').animate({'left':'100px'},1000).animate({'width':'200px'},1000).animate({'left':'0'},1000).animate({'width':'100px'},1000);
});
</script>

queue(callback(next))

  queue()方法可以接受一個回調函數作為參數,表示將要添加到隊列中的新函數

  [註意]queue()方法的回調函數中,可以進行樣式變換等,但不可以增加動畫效果

  由下麵代碼執行結果可以看出,隊列執行完函數後,隊列後面的動畫效果被停止,這時就需要用到下麵要介紹的dequeue()方法

<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<button id="btn">開始動畫</button>
<button id="reset">恢復</button>
<span id="result"></span>
<div id="box" style="position:relative;height: 100px;width: 300px;background-color: lightblue"></div>
<script>
$('#reset').click(function(){
    history.go();
})
$('#btn').click(function(event){
    setInterval(function(){
        $('#result').html('隊列數是:' +$('#box').queue().length)
    },100)
  $('#box').animate({'left':'100px'},1000).animate({'width':'200px'},1000);
  $('#box').queue(function(){
      $('#box').css('background','lightgreen');
  })
  $('#box').animate({'left':'0'},1000).animate({'width':'100px'},1000);
});
</script>

dequeue()

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

dequeue([queueName])

  dequeue()方法可以接受一個可選參數——一個含有隊列名的字元串,預設是fx

  [註意]dequeue()方法本身也算隊列的一員

<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<button id="btn">開始動畫</button>
<button id="reset">恢復</button>
<span id="result"></span>
<div id="box" style="position:relative;height: 100px;width: 300px;background-color: lightblue"></div>
<script>
$('#reset').click(function(){
    history.go();
})
$('#btn').click(function(event){
    setInterval(function(){
        $('#result').html('隊列數是:' +$('#box').queue().length)
    },100)
  $('#box').animate({'left':'100px'},1000).animate({'width':'200px'},1000);
  $('#box').queue(function(){
      $(this).css('background','lightgreen');
      $(this).dequeue();
  })
  $('#box').animate({'left':'0'},1000).animate({'width':'100px'},1000);

});
</script>

clearQueue()

  與deQueue()方法相反,clearQueue()方法用來從列隊中移除所有未執行的項

  [註意]clearQueue()並不影響當前動畫效果

clearQueue([queueName])

  clearQueue()方法可以接受一個可選參數——一個含有隊列名的字元串,預設是fx

<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
<button id="btn">開始動畫</button>
<button id="btn1">停止動畫</button>
<button id="reset">恢復</button>
<span id="result"></span>
<div id="box" style="position:relative;height: 100px;width: 300px;background-color: lightblue"></div>
<script>
$('#reset').click(function(){
    history.go();
})
$('#btn').click(function(event){
    setInterval(function(){
        $('#result').html('隊列數是:' +$('#box').queue().length)
    },100)
  $('#box').animate({'left':'100px'},1000).animate({'width':'200px'},1000);
  $('#box').queue(function(){
      $(this).css('background','lightgreen');
      $(this).dequeue();
  })
  $('#box').animate({'left':'0'},1000).animate({'width':'100px'},1000);

});
$('#btn1').click(function(event){
    $('#box').clearQueue();
})
</script>


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 每天一個設計模式-4 單例模式(Singleton) 1.實際生活的例子 有一天,你的自行車的某個螺絲釘鬆了,修車鋪離你家比較遠,而附近的五金店有賣扳手;因此,你決定去五金店買一個扳手,自己把螺絲釘固定緊。不一會兒,自行車就被你修好了;首先,這個扳手你不會扔掉,下次用的時候直接找出來就用了。好,今天 ...
  • Atitit.eclise的ide特性 abt 編譯 為什麼要在Intellij IDEA中使用Eclipse編譯器 如果你使用Intellij Idea,你應該考慮使用Eclipse編譯器來代替Javac。 你的項目所使用的編譯器可在IDE的設置頁面更改。 需要註意,如果你使用的是Java8,只有 ...
  • 一、元素選擇符 1. * 在我們看比較高級的選擇器之前,應該認識下這個眾所周知的清空選擇器。星號呢會將頁面上所有每一個元素都選到。許多開發者都用它來清空`margin`和`padding`。當然你在練習的時候使用這個沒問題,但是我不建議在生產環境中使用它。它會給瀏覽器憑添許多不必要的東西。`*`也可 ...
  • [1]動畫狀態 [2]停止動畫 [3]動畫延遲 [4]全局控制 ...
  • 踩過的坑都將成為路上的風景。隊友在cookie中已存以下值: 仔細觀摩,並無發現任何不妥,只是一種簡簡單單的json格式字元串而已。 但在前臺調用時,百試不爽,屢屢出錯,錯誤代碼如下,一直顯示undefined ... 充電之後 ... 加上JSON.parse()處理後,完美解決 相關學習: JS ...
  • 1.等腰三角形 2.直角三角形 3.圓 4.橢圓 ...
  • css參考手冊: http://www.phpstudy.net/css3/ http://www.css88.com/book/css/ ...
  • 一、JS實現瀑布流 index.html:頁面結構 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>瀑布流佈局</title> 6 <link rel="stylesheet" href= ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...