了解瀏覽器轉換中的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中文網其他相關文章!