为啥我的链接颜色关键帧动画在 Chrome 中不起作用?

Posted

技术标签:

【中文标题】为啥我的链接颜色关键帧动画在 Chrome 中不起作用?【英文标题】:Why doesn't my keyframe animation for link color work in Chrome?为什么我的链接颜色关键帧动画在 Chrome 中不起作用? 【发布时间】:2015-09-08 06:11:06 【问题描述】:

使用 @keyframes(和 animation)为 a 颜色设置动画在 Chrome 中不起作用。

演示:https://jsfiddle.net/ed3pypwr/ 在 Chrome 中,链接保持蓝色。在 Firefox 中,它按预期从红色变为绿色。在 div 上,它在 Chrome 中也能正常工作。

有没有办法解决这个问题?

编辑 我知道它应该以-webkit- 为前缀以确保最大的兼容性,但这不是这里的问题。无论如何它都不起作用。

编辑 2 一种解决方案是将链接放在包装器中并使用currentColor:https://jsfiddle.net/b84gttu6/。有没有更好的办法?

【问题讨论】:

color:inherit 也可以正常工作 @RonaldUlyssesSwanson 是的,但无论如何我宁愿找到另一种方法。 【参考方案1】:

Chrome 的旧版本 (@-webkit-keyframes 而不是标准的 @keyframes。所以完全支持看起来像这样:

@-webkit-keyframes test

   from  color: red; 
   to  color: green; 

@keyframes test

   from  color: red; 
   to  color: green; 

更新

我一直在使用各种不同的方法进行一些测试,并且只有在链接未被访问时才有效(为什么,我不知道)。

Example

【讨论】:

同时使用支持所有主流浏览器! 好吧,如果您不想为所有内容添加前缀,您应该查看 CSS 编译器,我认为 Chrome 只是最近才添加了对无前缀版本的支持,而且没有很多人使用最新的 Chrome .看这里:caniuse.com/#search=css-animation 只有 Chrome 43 及更高版本支持不带前缀的动画 我一直直言 Chrome 在这些方面是多么落后,但最新的稳定版本 确实 支持不带前缀的功能这一事实充其量是不准确的,而且在最坏的情况下无关紧要。最新的稳定版本确实显示了所描述的问题(并且考虑到 Chrome 比 任何人 完善自己的功能要长得多,这对 Chrome 的情况没有一点帮助 - 总共 8 年 - 如果结果是回归,那就更糟了。 "只有在链接未被访问时才有效" 在这种情况下,很可能是 Chrome 对整个 :visited 隐私的事情有点过分热心。不幸的是,除了“UA 可以做他们认为对隐私最有利的事情”之外,这些东西并没有被详细说明。但是,使用 OP 现在提供的 currentColor 解决方法让 Chrome 变得更加明智。

以上是关于为啥我的链接颜色关键帧动画在 Chrome 中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的动画在 Firefox 中不起作用?

多个关键帧动画在 Safari 中不起作用

带有变换的css关键帧动画不适用于SVG

为啥这个 CSS3 动画在 Safari 和 Chrome 中不起作用?

动画/关键帧在 Firefox 中不起作用(通过 JavaScript 启动 CSS 动画)

为啥动画内容在 Firefox 中不起作用?