【CSS3-transition】過渡完成之後執行自定義處理

JaysonWang發表於2016-07-04

背景

CSS3中引入了很多新的特性,其中一個就是trainsition,這個新特性讓我們在一種樣式轉變為另一種樣式時,無需使用Flash & Javascript。這個特性在越來越多的專案中被應用。

回放

在寫自己部落格程式中,由於全站採用Websocket or ajax進行`無延遲`通訊,所以在header處新增了一個loader-bar,實時顯示`進度`(很多網站應該都有這樣的設計)。在載入完成之後需要隱藏這個loader-bar,但是因為用了CSS3的trainsition,所以之前我的做法是在增加進度條時,檢測是否全部完成(寬度是否達到100%之類的),然後設定一個定時器,這個定時器需要調整到和transition-duration相適應。但是這樣不優雅。

解決

其實很簡單,只怪自己粗心沒看到文件底部的更多相關,方案如下

element.addEventListener("transitionend", function() {
    // do something
}, true);

參考

  1. Detecting the completion of a transition

  2. TransitionEvent

相關文章