CSS背景颜色关键帧动画

Posted

技术标签:

【中文标题】CSS背景颜色关键帧动画【英文标题】:CSS background color keyframes animation 【发布时间】:2014-08-13 07:59:13 【问题描述】:

我正在尝试为 Firefox(主题)中的工具栏背景颜色制作一个简单的淡入/淡出动画。问题是,我的颜色完全消失为透明。我希望我的颜色褪色大约一半,然后开始恢复为全彩。

我列出了我尝试过的代码...

toolbar
    animation-name: animation;
    animation-duration: 5s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;    
    animation-play-state: running;


@keyframes animation 
    50.0%  background-color:red;

我试过摆弄不透明度设置,但没有成功。任何帮助表示赞赏。

【问题讨论】:

请详细说明您想要实现的目标... 我希望背景颜色从鲜红色变为浅红色,然后再变回来,而不会使颜色变透明。 【参考方案1】:
@-webkit-keyframes animation 
    0%     background-color:red;
    50.0%  background-color:#ff6666; /* your chosen 'mid' color */
    100.0%  background-color:red;


@keyframes animation 
    0%     background-color:red;
    50.0%  background-color:#ff6666;
    100.0%  background-color:red;

JSfiddle Demo

【讨论】:

【参考方案2】:

您可以使用关键帧旋转颜色。

const generateKeyFrames = (head, ...rest) => ((colors) =>
  colors.map((v, i, a) =>
    `$
      (i * (100 / (a.length - 1))).toFixed(2).padStart(8, ' ')
    %  background-color: $
      v.padEnd(Math.max(...colors.map(c => c.length)), ' ')
     ;`)
  .join('\n')
)([head, ...rest, head])

console.log(generateKeyFrames('red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet'));
body 
  -webkit-animation-name: animation;
  -webkit-animation-duration: 10s;
  -webkit-animation-timing-function: ease-in-out;
  -webkit-animation-iteration-count: infinite;
  -webkit-animation-play-state: running;
  animation-name: animation;
  animation-duration: 10s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-play-state: running;


@-webkit-keyframes animation 
    0.00%  background-color: red;    
   14.29%  background-color: orange; 
   28.57%  background-color: yellow; 
   42.86%  background-color: green;  
   57.14%  background-color: blue;   
   71.43%  background-color: indigo; 
   85.71%  background-color: violet; 
  100.00%  background-color: red; 


@keyframes animation 
    0.00%  background-color: red;    
   16.67%  background-color: orange; 
   33.33%  background-color: yellow; 
   50.00%  background-color: green;  
   66.67%  background-color: blue;   
   83.33%  background-color: indigo; 
  100.00%  background-color: violet; 
<div class="colors"></div>

【讨论】:

以上是关于CSS背景颜色关键帧动画的主要内容,如果未能解决你的问题,请参考以下文章

是否可以 - on:hover 暂停 css3 动画并更改其背景颜色?

通过 CSS 自动更改背景颜色和字体颜色 [关闭]

canvas一段背景色鼠标移入后

css 使用CSS关键帧动画背景图像

相同的 CSS 动画没有相同的持续时间(带有动画背景颜色)

JQuery 帮助 - 动画背景颜色