CSS 转换 html 页面从黑白到彩色 css?

CSS transition html page from black white to color with css?

只是想知道它是否可能,但我正在尝试在加载时制作我的页面,在大约 4 秒的时间内从黑白过渡到彩色 - 整个页面、文本、div、图像,所有内容。

我已经制作了一张黑白图像,可以通过悬停过渡到彩色版本,它是否与此类似?但是有了包装纸?

img.desaturate { 
   animation: toColour 10s;
}

@keyframes toColour {
    0%    { -webkit-filter: grayscale(100%); filter: grayscale(100%); }
    25%   { -webkit-filter: grayscale(75%); filter: grayscale(75%); }
    50%   { -webkit-filter: grayscale(50%); filter: grayscale(50%); }
    50%   { -webkit-filter: grayscale(25%); filter: grayscale(25%); }
    100%  { -webkit-filter: grayscale(0%); filter: grayscale(0%); }
}

或者让每个东西都带有颜色单独过渡?

仅 css 是否有更好的方法或可能的方法?

提前致谢

我不明白为什么不,只需在包装器中使用您的动画即可:


jsFiddle


代码片段:

@keyframes toColour {
  0% {
    -webkit-filter: grayscale(100%);
    filter: grayscale(100%);
  }
  25% {
    -webkit-filter: grayscale(75%);
    filter: grayscale(75%);
  }
  50% {
    -webkit-filter: grayscale(50%);
    filter: grayscale(50%);
  }
  50% {
    -webkit-filter: grayscale(25%);
    filter: grayscale(25%);
  }
  100% {
    -webkit-filter: grayscale(0);
    filter: grayscale(0);
  }
}
.wrapper {
  background-color: royalblue;
  animation: toColour 4s;
}
p {
  color: cyan;
}
<div class="wrapper">
  <p>
    Example text with color
  </p>
  <img src="http://fillmurray.com/500/500">
</div>

除非你尝试,否则你永远不会知道。看看这个

.desaturate, .desaturate *  { 
   animation: toColour 7s;
}

@keyframes toColour {
    0%    { -webkit-filter: grayscale(100%); filter: grayscale(100%); }
    25%   { -webkit-filter: grayscale(75%); filter: grayscale(75%); }
    50%   { -webkit-filter: grayscale(50%); filter: grayscale(50%); }
    50%   { -webkit-filter: grayscale(25%); filter: grayscale(25%); }
    100%  { -webkit-filter: grayscale(0%); filter: grayscale(0%); }
}
<div class="desaturate">
  <img src="http://images.freeimages.com/images/previews/476/green-fly-on-orange-flower-1366361.jpg" alt="" width="200" height="200"/>
</div>