首頁 >web前端 >css教學 >如何在 DOM 操作期間暫時停用 CSS 轉換?

如何在 DOM 操作期間暫時停用 CSS 轉換?

Patricia Arquette
Patricia Arquette原創
2024-11-29 15:54:12696瀏覽

How to Temporarily Disable CSS Transitions During DOM Manipulation?

如何暫時停用CSS 過渡效果

使用應用了CSS 過渡的DOM 元素時,在某些情況下您可能需要暫時停用這些效果以平滑調整大小。本文探討了實現此目的的最優雅的解決方案。

停用過渡

要有效停用CSS 過渡,您可以建立一個「notransition」類,如下所示:

.notransition {
  -webkit-transition: none !important;
  -moz-transition: none !important;
  -o-transition: none !important;
  transition: none !important;
}

實作JavaScript

使用JavaScript應用「notransition」類別有兩種方法:

不使用 jQuery:

someElement.classList.add('notransition'); // Disable transitions
doWhateverCssChangesYouWant(someElement);
someElement.offsetHeight; // Trigger a reflow, flushing the CSS changes
someElement.classList.remove('notransition'); // Re-enable transitions

與jQuery:

$someElement.addClass('notransition'); // Disable transitions
doWhateverCssChangesYouWant($someElement);
$someElement[0].offsetHeight; // Trigger a reflow, flushing the CSS changes
$someElement.removeClass('notransition'); // Re-enable transitions

說明

禁用轉換的問題是瀏覽器會緩衝樣式更改,直到JavaScript 執行完成並將它們應用到單一「回流」中」。這可能會導致出現不必要的動畫。要強制回流並刷新CSS 更改,您需要讀取元素的offsetHeight屬性。有足夠的內容覆蓋現有樣式的權重。所有瀏覽器都支援。

以上是如何在 DOM 操作期間暫時停用 CSS 轉換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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