如何在 JavaScript 中创建 CSS 动画?

How can I create a CSS animation in JavaScript?

如何在 JavaScript 中创建下面的 CSS 动画?我找遍了 Google,并多次尝试创建它,但我不知道该怎么做。

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

对于运行这个,我知道我可以使用下图所示的东西,但我不知道如何制作这个动画。有人可以帮忙吗?

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

“在 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") 将在 Whosebug 的徽标中淡出

您可以使用 javascript 和 transition 来实现它

// 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>