透過 JavaScript 的 setTimeout() 來仿讀取時間,當設定的時間到之後增加有 transform 的 class 呈現轉場。

程式碼如下:

關鍵程式碼:

  • JavaScript 的 setTimeout 觸發後,在二個綁定的元素以 .classList.add() 的方法,各自在對應的元素加上 class ( remove-splash & remove-intro),特別注意所使用 class 名稱參數,前方不用在加上 .,只需要名稱的字串。
  • .splash 區塊在 setTimeout 方法觸發後所加上的 .remove-splash class 名稱,主要是在同一個元素疊加上了 transform 的樣式屬性來進行垂直位移,配合上 transition 屬性就會產生出移動的動畫效果,所執行的 cubic-bezier() 影響動畫的播放速度。
  • h1 元素在 setTimeout 方法觸發後,因原本的元素就有指定了 opacity: 0; (全透) 與 transform: translateY(-30px) (垂直位移),當疊加上 .remove-intro 樣式加上了 transform: translateY(0)opacity: 1 (不透) ,因此在指定 transition: transform 1s, opacity 1s; 的影響下,就會讓二個原先預設的 CSS 屬性產生由上至下位移與淡出的轉場效果。

CSS transition 轉場效果,當 background-colorcolor 屬性受疊加操作時,就會產生轉場效果。

See the Pen CSS transition 的 hover 受 background-color 與 color 屬性改變而以 transition 設定的轉場效果 by Jimmy_Wu (@Jimmy_Wu) on CodePen.

完整範例如下:

See the Pen JavaScript的setTimeout仿讀取時間與簡易轉場動畫的預載區塊動畫 by Jimmy_Wu (@Jimmy_Wu) on CodePen.

其他資源:
SVG-Loaders:GitHubDemoPage