使用 CSS 动画更改背景图像

Change background-image with CSS animation

如何让 class 在 div 出现在视口中 2 秒后更改其背景图像?它对我来说没有改变:

.cover-gradient {
  background-image: none;
}

.cover-gradient:after {
  opacity: 1;
  transition: 0.3s;
  animation: fadeMe 2s linear;
}

@keyframes fadeMe {
  0% {
    background-image: none;
  }
  100% {
    background-image: linear-gradient(to right, rgba(179, 49, 95, 0.5), rgba(58, 0, 117, 0.5));
  }
}

谢谢。

在 CSS 中设置动画时,您需要在两个相似值之间设置动画。

例如,这将起作用:

max-height: 0px;max-height: 100px;

这不会:

max-height: none;max-height: 100px;

但是,出于性能原因,建议在 animating in CSS

时使用 opacitytransform 属性
.cover-gradient {
  height: 100vh;
  width: 100vw;
  opacity: 0;
  animation: fadeMe 0.3s linear;
  animation-delay: 2s;
  animation-fill-mode: forwards;
  background-image: linear-gradient(to right, rgba(179, 49, 95, 0.5), rgba(58, 0, 117, 0.5));
}

@keyframes fadeMe {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

https://jsfiddle.net/hellogareth/j3ytzq52/22