首頁 >web前端 >css教學 >為什麼我的 CSS 轉場有時無法產生動畫?

為什麼我的 CSS 轉場有時無法產生動畫?

Susan Sarandon
Susan Sarandon原創
2024-11-19 00:12:021041瀏覽

Why Do My CSS Transitions Sometimes Fail to Animate?

了解瀏覽器轉換中的CSS 回流問題

在使用CSS3 轉換建立響應式影像滑桿時,嘗試觸發CSS 屬性修改時的動畫。儘管初始化了transition屬性,瀏覽器可能會忽略這些變化,不執行想要的動畫。

解決方案:強制回流觸發動畫

這個問題的解決方案在於強制瀏覽器重排,重新計算頁面的佈局和渲染。這可以透過存取元素的 offsetHeight 屬性來實現。以下JavaScript 函數可完成此操作:

function reflow(elt) {
  console.log(elt.offsetHeight);
}

實作:

要實作此解決方案,請在修改觸發動畫的CSS 屬性後呼叫reflow()函數。例如:

ul.style.transition = 'none 0s linear';
ul.style.left = '-600px';
ul.style.transition = 'all 0.2s ease-out';
reflow(ul); // Forces a reflow
ul.style.left = '0px';

注意:

最近的最佳化涉及將console.log(elt.offsetHeight) 替換為void(elt.offsetHeight),作為最佳化器不太可能忽略此聲明作為潛在的副作用。

以上是為什麼我的 CSS 轉場有時無法產生動畫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn