jquery隊列queue與原生模仿其實作方法分享_jquery
queue() 方法顯示或操作在符合元素上執行的函數佇列。
queue和dequeue的過程主要是:
用queue把函數加入隊列(通常是函數數組)
用dequeue將函數數組中的第一個函數取出,並執行(用shift()方法取出並執行)
也就意味著當再次執行dequeue的時候,得到的是另一個函數了。同時也意味著,如果不執行dequeue,那麼佇列中的下一個函數永遠不會執行。
對於一個元素上執行animate方法加動畫,jQuery內部也會將其加入名為 fx 的函數佇列。而對於多個元素要依序執行動畫,則必須我們手動設定隊列進行了。
一個例子,要兩個div依序向左移動:
我首先建立了一個函數數組,裡邊是一些列需要依次執行的動畫
然後我定義了一個回調函數,用dequeue方法用來執行隊列中的下一個函數
接著把這個函數數組放到document上的myAnimation的隊列中(可以選擇任何元素,我只是為了方便而把這個隊列放在document上)
最後我開始執行隊列中的第一個函數
這樣做的好處在於函數數組是線性展開,增減起來非常方便。而且,當不要要繼續進行接下來動畫的時候(例如用戶點了某個按鈕),只需要清空那個隊列即可。而要增加更多則只需要加入隊列即可。
//清除佇列$(document). queue("myAnimation",[]);
//加一個新的函數放在最後
$(document).queue(“myAnimation”,function(){alert("動畫真的結束了! ")});
這當然也可以用於ajax之類的方法,如果需要一系列ajax交互,每個ajax都希望在前一個結束之後開始,之前最原始的方法就是用回調函數,但這樣太麻煩了。同樣利用queue新增佇列,每次ajax之後的回呼執行一次dequeue即可。
jQuery中動畫animate的佇列實現,下面用JavaScript模仿一個:
程式碼如下:
程式碼如下:
function Queue(){
this.a = [];
this.t = null;
}
Queue.prototype = {
queue:function(s) {
var self = this;
this.a.push(s);
this.hold();
return this;
},
},
var self = this;
clearTimeout(this.t);
this.t = setTimeout(function(){
console.log("Queue start.,
console.log("Queue starta); 🎜> self.dequeue();
},0);
},
dequeue:function(){
var s = this.a.shift(this),f > if(s){
console.log("s:" s);
setTimeout(function(){
con );

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python和JavaScript開發者的薪資沒有絕對的高低,具體取決於技能和行業需求。 1.Python在數據科學和機器學習領域可能薪資更高。 2.JavaScript在前端和全棧開發中需求大,薪資也可觀。 3.影響因素包括經驗、地理位置、公司規模和特定技能。

如何在JavaScript中將具有相同ID的數組元素合併到一個對像中?在處理數據時,我們常常會遇到需要將具有相同ID�...

學習JavaScript不難,但有挑戰。 1)理解基礎概念如變量、數據類型、函數等。 2)掌握異步編程,通過事件循環實現。 3)使用DOM操作和Promise處理異步請求。 4)避免常見錯誤,使用調試技巧。 5)優化性能,遵循最佳實踐。

實現視差滾動和元素動畫效果的探討本文將探討如何實現類似資生堂官網(https://www.shiseido.co.jp/sb/wonderland/)中�...

深入探討console.log輸出差異的根源本文將分析一段代碼中console.log函數輸出結果的差異,並解釋其背後的原因。 �...

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。
