避免使用非合成動畫

非複合型動畫在低階手機上或主要執行緒上執行效能繁重的工作時,可能會顯示「資源浪費」 (不流暢)。動畫浪費會增加網頁的累計版面配置位移 (CLS)。減少 CLS 將可改善 Lighthouse 效能分數。

背景

瀏覽器用於將 HTML、CSS 和 JavaScript 轉換成像素的演算法,統稱為「轉譯管道」

轉譯管道包含以下序列步驟:JavaScript、樣式、版面配置、顏料、複合。
算繪管道。

即使您不瞭解轉譯管道的每個步驟也沒關係。您現在需要瞭解的重點是,在轉譯管道的每個步驟中,瀏覽器都會使用上一個作業的結果來建立新資料。舉例來說,如果您的程式碼會觸發版面配置的內容,就必須再次執行「Paint」和「複合」步驟。非複合動畫是指在轉譯管道 (樣式、版面配置或繪製) 中觸發前一步驟的任何動畫。非合成動畫會強制瀏覽器執行更多作業,因此效能較差。

請參閱下列資源,深入瞭解轉譯管道:

Lighthouse 如何偵測非合成動畫

如果無法合併動畫,Chrome 會向開發人員工具的追蹤記錄回報失敗原因,也就是 Lighthouse 讀取的內容。Lighthouse 會列出 DOM 節點(包含未合成的動畫),以及每個動畫的失敗原因。

如何確保製作動畫

請參閱「繼續使用僅限合成屬性並管理圖層數量」和「高效能動畫」。

資源