首頁 >web前端 >css教學 >為什麼我的 CSS 轉換無法與我的 JavaScript 投影片一起使用?

為什麼我的 CSS 轉換無法與我的 JavaScript 投影片一起使用?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-29 09:06:03719瀏覽

Why Are My CSS Transitions Not Working With My JavaScript Slideshow?

JavaScript 應用程式的CSS 轉換失敗

在嘗試使用CSS3 轉換增強幻燈片放映時,用戶遇到了一個令人困惑的問題:轉換儘管透過JavaScript 應用了正確的樣式,但仍拒絕執行。

JavaScript 會擷取幻燈片並指派預先定義的 CSS 類別來控制動畫。但是,指定的轉換無法啟動。使用開發者工具控制台手動套用樣式和過渡時,就不會出現這種現象。

透過分析,確定要發生過渡,必須滿足三個條件:

  1. 元素的初始屬性必須明確定義,例如,opacity: 0。
  2. 必須為元素分配一個過渡,例如,transition: opacity 2s。
  3. 新的屬性值必須套用,例如 opacity: 1.

在有問題的 JavaScript 實作中,條件 1 和 2 是動態分配的。因此,瀏覽器處理和註冊變更沒有時間延遲。

要解決此問題,建議在應用條件 3 之前插入延遲。此延遲允許瀏覽器處理先前的更改,確保在其值更改時正確識別轉換屬性:

<code class="javascript">window.setTimeout(function() {
  slides[targetIndex].className += " target-fadein";
}, 100); </code>

或者,可以直接在HTML 中應用條件3,確保在頁面載入期間定義轉換屬性,從而消除JavaScript 中需要延遲:

<code class="html"><div class="target-fadein-begin" ...></div></code>

一旦滿足這些條件,CSS3 轉換觸發的動畫將按預期運行。

以上是為什麼我的 CSS 轉換無法與我的 JavaScript 投影片一起使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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