动画线性渐变吞噬 CPU 使用率

时间:2021-02-08 15:23:26

标签: css css-animations linear-gradients

我有一个用于交替 body 并更改其背景颜色的动画。一切正常,但是当动画运行时,我可以看到我的 CPU 处于 100%。起初我认为这可能是由于 @keyframes,但是当我从交替颜色更改代码时,我看到一个非常批评的 CPU 过载减少,压倒性的持续 40%。所以我明白这可能是由于动画。

这是我的 CSS 代码:

body {
  background: linear-gradient(45deg, #F17C58, #E94584, #24AADB, #27DBB1, #FFDC18, #FF3706);
  background-size: 600% 100%;
  background-repeat: repeat;
  background-attachment: fixed;
  animation: gradient 16s linear infinite;
  animation-direction: alternate;
}

@keyframes gradient {
  0% {
    background-position: 0%
  }
  100% {
    background-position: 100%
  }
}

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

通过考虑伪元素使用变换:

html::before {
  content: "";
  position: fixed;
  z-index:-2;
  top: 0;
  left: 0;
  width: 600%;
  bottom: 0;
  background: linear-gradient(45deg, #F17C58, #E94584, #24AADB, #27DBB1, #FFDC18, #FF3706);
  animation: gradient 16s linear infinite alternate;
}

@keyframes gradient {
  100% {
    transform: translateX(-83.33%) /* 5/6x100% */
  }
}