用法
.stop( [clearQueue ] [, jumpToEnd ] ) => jQuery
.stop( [clearQueue ] [, jumpToEnd ] ) => jQuery
說明:停止匹配元素上的currently-running 動畫。
-
添加的版本:1.2
.stop( [clearQueue ] [, jumpToEnd ] )
-
添加的版本:1.7
.stop( [queue ] [, clearQueue ] [, jumpToEnd ] )
在元素上調用.stop()
時,會立即停止currently-running 動畫(如果有)。例如,如果在調用 .stop()
時使用 .slideUp()
隱藏元素,則該元素現在仍將顯示,但將是其先前高度的一小部分。不調用回調函數。
如果在同一個元素上調用了多個動畫方法,則後麵的動畫將放置在該元素的效果隊列中。在第一個動畫完成之前,這些動畫不會開始。當調用.stop()
時,隊列中的下一個動畫立即開始。如果為 clearQueue
參數提供了 true
的值,則隊列中的其餘動畫將被刪除並且永遠不會運行。
如果為 jumpToEnd
參數提供了 true
的值,則當前動畫將停止,但該元素會立即為每個 CSS 屬性提供其目標值。在我們上麵的.slideUp()
示例中,該元素將立即被隱藏。然後立即調用回調函數(如果提供)。
從 jQuery 1.7 開始,如果第一個參數作為字符串提供,則隻有由該字符串表示的隊列中的動畫才會停止。
當我們需要為 mouseenter
和 mouseleave
上的元素設置動畫時,.stop()
方法的用處顯而易見:
|
我們可以通過將.stop(true, true)
添加到鏈中來創建一個很好的淡入淡出效果,而不會出現多個排隊動畫的常見問題:
|
切換動畫
從 jQuery 1.7 開始,過早停止切換動畫.stop()
將觸發 jQuery 的內部效果跟蹤。在以前的版本中,調用.stop()
切換動畫完成之前的方法會導致動畫失去對其狀態的跟蹤(如果 jumpToEnd 為假)。任何後續動畫都將從新的 "half-way" 狀態開始,有時會導致元素消失。要觀察新行為,請參見下麵的最後一個示例。
可以通過將屬性 $.fx.off
設置為 true
來全局停止動畫。完成此操作後,所有動畫方法都會在調用時立即將元素設置為其最終狀態,而不是顯示效果。
例子:
單擊 Go 按鈕一次以啟動動畫,然後單擊 STOP 按鈕將其停止在當前位置。另一種選擇是單擊幾個按鈕將它們排隊,然後看到停止隻會殺死當前正在播放的按鈕。
|
演示:
單擊 slideToggle 按鈕開始動畫,然後在動畫完成之前再次單擊。動畫將從保存的起點切換到另一個方向。
|
演示:
相關用法
- JQuery .scroll()用法及代碼示例
- JQuery .slideDown()用法及代碼示例
- JQuery UI .show()用法及代碼示例
- JQuery .submit()用法及代碼示例
- JQuery .size()用法及代碼示例
- JQuery .scrollLeft()用法及代碼示例
- JQuery .scrollTop()用法及代碼示例
- JQuery .serialize()用法及代碼示例
- JQuery UI .switchClass()用法及代碼示例
- JQuery .slideUp()用法及代碼示例
- JQuery .serializeArray()用法及代碼示例
- JQuery .slideToggle()用法及代碼示例
- JQuery .select()用法及代碼示例
- JQuery .slice()用法及代碼示例
- JQuery .siblings()用法及代碼示例
- JQuery .show()用法及代碼示例
- JQuery .jquery用法及代碼示例
- JQuery .add()用法及代碼示例
- JQuery .contextmenu()用法及代碼示例
- JQuery .undelegate()用法及代碼示例
- JQuery .load()用法及代碼示例
- JQuery .contents()用法及代碼示例
- JQuery .empty()用法及代碼示例
- JQuery UI .labels()用法及代碼示例
- JQuery UI .addClass()用法及代碼示例
注:本文由純淨天空篩選整理自jquery.com大神的英文原創作品 .stop()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。