使用CSS动画更改背景图像

时间:2019-07-08 23:20:39

标签: html css animation transition viewport

在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));
  }
}

谢谢。

1 个答案:

答案 0 :(得分:0)

在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