首頁 > web前端 > css教學 > 如何使用 jQuery 偵測 CSS3 轉換和動畫的完成情況?

如何使用 jQuery 偵測 CSS3 轉換和動畫的完成情況?

Linda Hamilton
發布: 2024-12-27 16:08:15
原創
389 人瀏覽過

How Can I Detect the Completion of CSS3 Transitions and Animations with jQuery?

使用 jQuery 等待 CSS3 轉換

使用 CSS3 轉換為元素添加動畫時,確定動畫何時完成可能會很困難。與允許在動畫完成時回呼的 jQuery 動畫不同,CSS3 過渡不提供這樣的機制。不過,有一個使用 jQuery 的解決方案。

偵測轉換完成

jQuery 提供了可用於偵測 CSS3 轉換結束的事件偵聽器。這些監聽器是:

  • transitionend
  • webkitTransitionEnd
  • oTransitionEnd
  • MSTransitionEnd
  • oTransitionEnd

MSTransition這些事件在您想要追蹤的選擇器上使用bind()方法。例如:

$("#someSelector").bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){
    // Code to execute when the transition ends
});
登入後複製

偵測動畫完成

與過渡類似,也可以使用 jQuery事件來偵測動畫聽眾:

  • animationend
  • webkitAnimationEnd
  • oAnimationEnd
  • M SAnimationEnd

使用bind()方法作為before:

$("#someSelector").bind("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd", function(){
    // Code to execute when the animation ends
});
登入後複製

一次性事件觸發

要確保事件處理程序僅觸發一次,請使用jQuery 的.one() 方法:

$("#someSelector").one("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd", function(){
    // Code to execute when the transition ends
});

$("#someSelector").one("animationend webkitAnimationEnd oAnimationEnd MSAnimationEnd", function(){
    // Code to execute when the animation ends
});
登入後複製

最佳實踐

  • 將所有以瀏覽器為前綴的事件字串傳遞到bind()方法中以支援所有瀏覽器。
  • 使用 .one() 來防止處理程序多次觸發。
  • jQuery 的 bind() 方法已棄用;從版本 1.7 開始,首選 on()。
  • 或者,在事件觸發後使用 off() 分離回調,以確保它只觸發一次。

以上是如何使用 jQuery 偵測 CSS3 轉換和動畫的完成情況?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板