簡體   English   中英

如何在 JavaScript 中創建 CSS 動畫?

[英]How can I create a CSS animation in JavaScript?

如何在 JavaScript 中創建下面的 CSS 動畫? 我已經遍及谷歌,並嘗試多次創建它,但我無法弄清楚如何做到這一點。

@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 100;
  }
}

要運行這個,我知道我可以使用下面顯示的內容,但我不知道如何創建這個動畫。 任何人都可以幫忙嗎?

element.style.animation = "fadeIn 5s linear";

您可以使用帶有transition javascript 來實現它

 // start frame const start = { opacity: 0 }; // end frame const end = { opacity: 1 }; const element = document.querySelector('span'); Object.assign(element.style, start); element.style.transition = 'all 5s linear'; requestAnimationFrame(() => { Object.assign(element.style, end); });
 <span>Lorem Ipsum</span>

“在 Javascript 中創建”究竟是什么意思? 不使用CSS?

如果是這樣,您可以使用簡單的時間間隔來更新元素的不透明度,直到達到 0 或 100。簡單示例:

let opacity = 0; 
const fadeEl = document.getElementById("fadeInElementIdWithOpacity0");

    const fadeInInterval = setInterval(() => { 
         
        if (opacity < 1) { 
            opacity = opacity + 0.1 
            fadeEl.style.opacity = opacity; 
        } else { 
            clearInterval(fadeInInterval); 
        } 
    }, 200);

您可以首先使用任意數量的間隔定義此函數,然后使用任何 querySelector 調用它

function fadeIn(x) { 
            var fade = document.querySelector(x); 
            var opacity = 0; 
            var intervalID = setInterval(function() { 
  
                if (opacity < 1) { 
                    opacity = opacity + 0.1 
                    fade.style.opacity = opacity; 
                } else { 
                    clearInterval(intervalID); 
                } 
            }, 200); 
        } 

在控制台中使用此功能並運行fadeIn(".-logo")將淡入stackoverflow 的標志

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM